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

问题: 对于字符串char* = "  abcd   efg h";   要求输出" h efg   abcd ";   字符串整体翻转,但是里面每一个单词的顺序不翻转

思想:<1>取得原始字符串的长度,

<2>将字符串第一个出现空格位置的索引记录下来,并且放到一个整形数组里,例如上面的

出现空格的位置分别是0 5  11    那么记录数组int b[j];  b[0]=0  b[1] =5; b[2]=11;

<3>针对每一个空格开始出现的位置,将数组b[j] 逆序输出,例如

"  h"输出 "h "

"   efg"  输出"efg   "

" abcd"输出“abcd "

<4>将上面的输出用strcat拼接起来就是得到的目的字符串

代码如下:

#include 
#include 

using namespace std;

#define ARRAY_LEN 10

int main() {
    char* a="   OPKI am  test   abcdef    ";

    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<<"---"<

 

转载于:https://www.cnblogs.com/lifeng-blog/p/7567831.html

你可能感兴趣的:(c/c++)