C语言实现将一个字符串翻转

问题: 对于字符串char* = "abcdefg h"; 要求输出" h efgabcd "; 字符串整体翻转,但是里面每一个单词的顺序不翻转
思想:<1>取得原始字符串的长度,
<2>将字符串第一个出现空格位置的索引记录下来,并且放到一个整形数组里,例如上面的
出现空格的位置分别是0 511那么记录数组int b[j]; b[0]=0b[1] =5; b[2]=11;
<3>针对每一个空格开始出现的位置,将数组b[j] 逆序输出,例如
"h"输出 "h "
"efg"输出"efg"
" abcd"输出“abcd "
<4>将上面的输出用strcat拼接起来就是得到的目的字符串
代码如下:

#include #include using namespace std; #define ARRAY_LEN 10int main() { char* a="OPKI amtestabcdef"; int len = strlen(a); cout<<"original---"< 0; k--) { int tmp = b[k-1]; int i = 0; bool flag = false; while(a[tmp] != '\0') { char ch = a[tmp]; if (ch != ' ') { flag = true; cout<0; t--) { cout<<' '; } }if (!firstempty) { cout<<*a; while(*(++a) != ' ') cout<<*a; } cout<<"---"<


【C语言实现将一个字符串翻转】转载于:https://www.cnblogs.com/lifeng-blog/p/7567831.html

    推荐阅读