C 符串逆序函式出錯!看看問題在哪

2022-12-02 11:56:07 字數 1505 閱讀 2281

1樓:匿名使用者

樓主寫的那個for迴圈是有問題的 第一次迴圈 i = 0, str[len-i]  = str [len] 在str裡面是不存在的因為str的標號是從0開始到len-1. 修改後如下:

#include

using namespace std;

#include

string strturn(string str)

int i;

int len;

len = str.size();

string tmpstr= "";

string p="";

//cout << str << endl;

for (i= 0; itmpstr +=  str[len- i-1] ;

cout << str[len- i-1] ;

return tmpstr;

int main ()

string a="123456";

a= strturn(a);

cout

return 0;

結果如插圖。如果你用修改過後的執行還是不行,那說明是你編譯器的問題。我用的是cfree,你可以試試這個軟體。

2樓:匿名使用者

//你的程式存在野指標(string tmpstr= "";//這是子函式中的區域性變數),我用了另外的方法,而且減少了空間複雜度

#include

#include

#include

using namespace std;

int len = str.size();

char temp;

for (int i= 0; i

3樓:

#include

using namespace std;

#include

string strturn(string str)return tmpstr;

}int main ()

//問題的根源在於不同編譯器版本下的string類處理的有差異 你的編譯器以我上面的應當是可以正常通過的

4樓:

#include

#include

using namespace std;

}int main ()

測試通過

5樓:匿名使用者

for (i= 0; i<= len; i++)

迴圈越界了, 試試

for (i= 0; i< len; i++)

6樓:軍軍

首先應貼出編譯的出錯資訊。

c語言字串符

include include main char a 100 b 100 c 100 int i 0,j 0,n 0 gets a while a i 0 if a i 7 0 a i 1 7 0 b j a i b j a i 1 n i i b j 0 for i j 0 i 0 i j if...

c語言程式設計符串長度,c語言程式設計 字串長度

include int strlen char stry 函式strlen 的呼叫在宣告後,這一行可以省略 int strlen char stry 應該傳入一個字元指標,也就是你的一維陣列首地址 因為呼叫時是n strlen str str是一維陣列名,也是陣列首地址 main include i...

c程式設計題編寫函式求字串的長度在

include include define n 1024 int strlen char str return count void main if ch n i n 1 p i ch printf 這個字串為 s n p printf 這個字串的長度為 d n strlen p system p...