有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".
2016-06-17 18:36
429 查看
#include <stdio.h> #include <assert.h> int length(const char *str) { int len=0; assert(str); while(*str) { len++; str++; } return len; } void reverse_str(char *start,char *end) { while(start<end) { char tmp=*start; *start=*end; *end=tmp; start++; end--; } } char *reverse(char *str) { int n=length(str); char *ret=str; //先将起始位置保存在ret中 char *start=str; char *end=str+n-1; reverse_str(start,end); while(*str) { start=str; while((*str!=' ' )&&(*str!='\0')) { str++; } end=str-1; reverse_str(start,end); if(*str==' ' ) { str++; } } return ret; } int main() { char str[]="student a am i" ; printf( "%s\n",reverse(str)); system( "pause"); return 0; }
本文出自 “追寻内心的声音” 博客,转载请与作者联系!
相关文章推荐
- 判断回文数、回文字符串(从左边读和从右边读一样)
- 使用可变参数列表实现print("s\tc\n","bit-tech",'w');
- 使用可变参数列表实现任意个数求平均值
- hibernate.cfg.xml配置
- 编写程序实现strlen()函数,strcmp(),strcpy(),strcat()的功能
- util 将bean 独立出来 写法
- 编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数
- 实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数
- 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)
- 不使用(a+b)/2这种方式,求两个数的平均值(保证不会溢出)
- 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?(异或的用法)
- 猴子吃桃
- 小球落下,反弹问题
- 有一个分数序列 2/1+3/2+5/3+8/5+13/8+…求出这个数列前 20 项的和。
- 3个人说了真话,1个人说的是假话。写一个程序来确定到底谁是凶手
- 编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现
- 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
- 五次作业后的感悟
- 我的nginx+php是如何配置的?
- 如何通过HTML标记或JS代码实现跳转返回页面顶部