字符串中单词的逆转,即将单词出现的顺序进行逆转。如将“Today is Friday!”逆转为“Friday! is Today”.
2018-09-09 10:46
267 查看
字符串中单词的逆转,即将单词出现的顺序进行逆转。如将“Today is Friday!”逆转为“Friday! is Today”. #include<iostream> #include<stdio.h> void Reverse(char *pb,char *pe) { if(pb==NULL||pe==NULL) return; while(pb<pe) { char tmp=*pb; *pb=*pe; *pe=tmp; pb++,pe--; } } char *ReverseSentence(char *pData) { if(pData==NULL) return NULL; char *pBegin=pData; char *pEnd=pData; while(*pEnd!='\0') pEnd++; pEnd--; Reverse(pBegin,pEnd); pBegin=pEnd=pData; while(*pBegin!='\0') { if(*pBegin==' ') { pBegin++; pEnd++; continue; } else if(*pEnd==' '||*pEnd=='\0') { Reverse(pBegin,--pEnd); pBegin=++pEnd; } else pEnd++; } // printf("%s",pData); return pData; } int main() { char str[]="Today is Friday!"; //在主函数中传入调用函数的值必须是字符数组类型的值 char *str1; //而不能使指向字符串的指针,否则被调用函数无法访问字符串。 printf("源字符串为:%s\n",str); str1=ReverseSentence(str); while(str1!='\0') { std::cout<<*str1; str1++; } // std::cout<<std::endl; return 0; }
若指针指向一个字符串,这个字符串是保存在数据段常量区的,是不可以修改的。但我们可以让这个指针指向其他的字符串。
但是所示数组保存字符串的话,是存在栈区的,数组又是常量指针,即数组的这地址是不可以修改的,所以上面程序不会修改字符串的值。
要想字符指针像字符数组一样使用,需要提前申请相应的的内存空间,并在使用完以后对他进行释放。
相关文章推荐
- 百度面试题 字符串中单词的逆转,即将单词出现的顺序进行逆转
- 实现字符串中单词的逆转,即将单词出现的顺序进行逆转。如将"how are you "逆转为"you are how!"
- (1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”); (2)编写单元测试进行测试; (3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
- 将字符串中的每个单词顺序进行颠倒,单词还是原来的单词,字母顺序不发生变化,将字符串中的空格用 代替
- 华北计算所其中一道机试题,逆转字符串,但是单词顺序不变
- 初探map()——对一个文件进行统计其中各个单词出现的次数,并按次数从高到低的顺序进行排序
- 华北计算所其中一道机试题,逆转字符串,但是单词顺序不变,字符串中只含有字母和空格
- 将字符串中的每个单词顺序进行颠倒,单词还是原来的单词,字母顺序不发生变化
- 将字符串中连续出现的重复字母进行压缩
- 【剑指Offer学习】【面试题42:翻转单词顺序vs左旋转字符串】
- 从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复的的字符。
- 反转字符串,单词内部顺序不变
- 按照单词的字母是否相同对字符串数组进行分组
- 42-反转单词顺序/左旋转字符串
- 字符串中单词的逆转
- 查找一个字符串中每个单词的出现次数--Java
- 对输入字符串进行压缩,输入"aaabcccdde",输出"3ab3c2de",即对连续出现的字符进行压缩。
- 面试算法(四十二)翻转单词顺序VS左旋转字符串
- 剑指Offer面试题:34.翻转单词顺序VS左旋转字符串
- 3. 串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。 本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。 2. 把数字与