算法编程----"I love you" to "you love I"

这个是找工作的一个笔试题。说的是单词倒序输入。

#include 
using namespace std;

char* converse(char* str);
int main()
{
    char str[30];
    cin.getline(str, 30);
    cout << str << endl;
    char result[30];
    char* result1 = converse(str);
    strcpy(result, result1);//用指针直接输出是乱码,用数组就正常输出。
    cout << result << endl;
    return 0;
}

char* converse(char* str){
    char result[100];
    //strcpy(result, str);
    int len = strlen(str);
    char c[50];
    int index=-1;
    int temp = -1;

    for (int i = len - 1; i > -1; i--){
        
        if (str[i] != ' '){
            temp++;
            c[temp] = str[i];
            
        }
        if (str[i] == ' ' && temp < 0){
            continue;
        }

        if (str[i] == ' ' && temp > -1 || i == 0){
            for (int j = temp; j > -1; j--){
                index++;
                result[index] = c[temp];
                temp--;
            }
            if (i != 0){
                result[++index] = ' ';
            }
            
        
            
        }
    }
    result[++index] = '\0';
    return result;  

}

你可能感兴趣的:(算法编程----"I love you" to "you love I")