C语言——例程:按单词反转字符串
2016-12-13 18:31
225 查看
并不是简单的字符串反转,而是按给定字符串里的单词将字符串倒转过来,就是说字符串里面的单词还是保持原来的顺序,这里的每个单词用空格分开。例如:
Here is www.zhuxinquan.com
经过反转后变为:
www.zhuxinquan.com is Here
如果只是简单的将所有字符串翻转的话,可以遍历字符串,将第一个字符和最后一个交换,第二个和倒数第二个交换,依次循环。其实按照单词反转的话可以在第一遍遍历的基础上,再遍历一遍字符串,对每一个单词再反转一次。这样每个单词又恢复了原来的顺序。
Here is www.zhuxinquan.com
经过反转后变为:
www.zhuxinquan.com is Here
如果只是简单的将所有字符串翻转的话,可以遍历字符串,将第一个字符和最后一个交换,第二个和倒数第二个交换,依次循环。其实按照单词反转的话可以在第一遍遍历的基础上,再遍历一遍字符串,对每一个单词再反转一次。这样每个单词又恢复了原来的顺序。
void reverse_str(char* strInput,int nStart,int nEnd) { if ( nStart >= nEnd || nStart <0 || nEnd >= strlen(strInput)) { return; } while(nStart < nEnd) { char cTemp = strInput[nStart]; strInput[nStart] = strInput[nEnd]; strInput[nEnd] = cTemp; nStart++; nEnd--; } } //完成单词倒转,比如"i am who"转换成"who am i" void reverse_word(char* strInput) { //转换成ohm ma i reverse_str(strInput,0,strlen(strInput)-1); //ohw ma i 每个单词反转 char* strStart = strInput; int nStart = 0; int nEnd = 0; while( *strInput != '\0') { if ( *strInput == ' ') { reverse_str(strStart,nStart,nEnd-1); nStart = nEnd +1; strStart = strInput; } nEnd ++; strInput ++; } }
相关文章推荐
- c语言——按单词反转字符串
- C语言来实现字符串反转 只有单词顺序反转,单词里的字母不反转
- C语言来实现字符串反转(只有单词反转,单词里的字母不反转)
- 面试问题之 按单词反转字符串
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
- 按单词反转字符串
- 将字符串按照单词完全反转
- (ZZ~~)字符串单词顺序反转
- C语言实现字符串反转程序
- 按单词反转字符串
- 文章中单词个数统计 字符串以空格反转
- 字符串反转,单词内容不变
- 反转字符串中的单词(Reverse Words)
- alg: 反转字符串中的单词顺序
- 以单词为单位反转字符串,要求不申请任何空间
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
- 【我解C语言面试题系列】013 以单词为单位的翻转字符串
- 【我解C语言面试题系列】013 以单词为单位的翻转字符串
- 【面试题目】转贴-字符串反转(不包括某些特殊单词)
- 以单词为单位,对字符串进行反转