我的代碼在下面有問題,我想顛倒一個字符串,但是我運行時錯誤,誰能幫我檢查一下?問題是:
如:用C語言逐字顛倒一個字符串的字
輸入:字符* S = 「這是我的字符串」
OUTPUT: 「字符串我是這樣的」
#include <iostream>
using namespace std;
void reverse(char *str, int start, int end){
char tmp;
while(end > start){
tmp = str[end];
str[end] = str[start];
str[start] = tmp;
end--;
start++;
}
}
int main()
{
char *s = "This is my string";
int len = strlen(s);
int start = 0;
int end = len-1;
reverse(s, start, end);
printf("%s", s);
end = 0;
while(end < len){
if(s[end] == ' '||s[end] =='\0'){
while(s[start]==' ')
start++;
reverse(s,start,end-1);
start = end;
}
end++;
}
printf("%s", s);
cin.get();
}
你的代碼似乎不是使用C語言,而是使用C++。 – heretolearn
你的'main'函數應該返回一個整數。這與你的問題無關,但是很好的編碼習慣。標準頭文件stdlib.h定義了常量「EXIT_SUCCESS」和「EXIT_FAILURE」,它們是從main('EXIT_SUCCESS'成功完成返回,否則返回'EXIT_FAILURE')的良好默認值。 – sfstewman