C语言初体验(二)
来源:互联网 发布:阿里云app名师课堂 编辑:程序博客网 时间:2024/06/05 12:24
输入一句英文存入数组,翻转所有单词的顺序然后存回数组.(单词本身不翻转,单词之间有空格分割) (10分)
例:how are you ==> you are how
算法如下:先将整个字符串反序存储,然后在将每个单词一一反向存储即可
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 32
my_strreverse(char *p, int n)
{
int i;
int j = 1;
char tmp;
for(i = 0; i < n / 2; i++)
{
tmp = *(p + i);
*(p + i) = *(p + n -i - 2);
*(p + n -i - 2) = tmp;
}
return 0;
}
my_reverse(char *p, int n)
{
int i = 0;
int j = 1;
int k;
int a[32]; //用来记录空格在字符串中的位置
a[0] = -1;
while(*(p + i) != '\n')
{
if(*(p + i) == ' ')
a [j++] = i;
i ++;
}
a[j] = n - 1;
for(k = 0;k < j; k++)
{
for(i = -1; i < n; i++)
{
if(i == a[k])
my_strreverse((p + a[k] + 1), (a[k + 1] - a[k]));
}
}
return 0;
}
int main(void)
{
char src[SIZE];
char *p = src;
printf("please in put the src: ");
fgets(src, SIZE, stdin);
printf("src: %s", src);
my_strreverse(p, strlen(src));
printf("src: %s", src);
my_reverse(p, strlen(src));
printf("src: %s", src);
return 0;
}
希望对大家有所帮助,谢谢!
- C语言初体验(二)
- C语言初体验
- C语言初体验
- Delphi2009初体验 - 语言篇 - 体验泛型(二)
- C语言初体验(一)
- C语言程序初体验
- C语言链表再体验
- C语言(二)
- Java初体验(二)
- CentOS 初体验二: 切换语言,连接互联网
- C语言typedef函数体验
- C语言库函数(二)
- C语言实战(二)
- C语言函数(二)
- C语言指针(二)
- C语言--读书笔记(二)
- c语言练习(二)
- C语言库函数(二)
- Linux 多线程同步之哲学家用餐问题分析
- CentOS7清除wnTKYg木马
- BRD文档撰写方法与技巧
- 利用canvas对图片进行灰度色处理,图片只有一半变成灰度色
- pb9 调用WebService
- C语言初体验(二)
- 使用 AngularJS 和 Electron 构建桌面应用
- Redis和Memcached的区别
- mac图片格式转换CR2->jpg
- Android开发者指南-运动传感器Motion Sensor
- Systick
- 二分检索及三分检索
- 买苹果( 网易2017秋招编程题集合)
- leetcode