題目的要求是 Insert函式將一個字串插入另一個字串中指定位置,插入的部分用{}括起,但是我程式里明明是‘}’,但還是輸出這個亂碼字,換了ASC碼也不行。

新人求助!!!
下面是我的代碼,如果有問題的地方希望大佬能指出。
#include <iostream>
using namespace std;
int Insert(char* dest, char* src, int pos);
char* S1, * S2;
int main(int argc, char* argv[])
{
char s1[80], s2[80];
int n, len;
S1 =s1 ;
S2 =s2 ;
cout << "dest:";
cin >> s1;
cout << "src:";
cin >> s2;
cout << "pos:";
cin >> n;
len = Insert(S1, S2, n); //在下面完成程式撰寫:呼叫Insert函式。
cout << "output:" << s1 << ":" << len << endl;
return 0;
}
int Insert(char* dest, char* src, int pos)
{
int i, j;
char temp[80];
temp[0] ='}';
for (i = pos, j = 1; i <= strlen(dest); i++, j++)
temp[j] = dest[i];
dest[pos] = 123;
for (i = 0, j = pos + 1; i <= strlen(src) - 1; i++, j++)
dest[j] = src[i];
dest[j + 1] = '\0';
strcat(dest, temp);
S1 = dest;
return strlen(dest) ;
}
uj5u.com熱心網友回復:
dest[j + 1] = ‘\0’; 改成 dest[j] = ‘\0’; //注意for j 回圈結束后 j 的位置在哪里,所以dest[j] = ‘\0’;是正確的,dest[j + 1]就會造成dest[j]是個垃圾字符,所以就會亂碼uj5u.com熱心網友回復:
謝謝你!大佬,這么簡單的問題都沒看出來,看來還要多學。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/49239.html
標籤:新手樂園
上一篇:定義若干個函式(是自定義函式哦),使用二維陣列作為傳入引數。計算二維陣列中兩條對角線元素的和與乘積。在主函式中輸入4×4的二維陣列,呼叫已定義的函式,把該矩陣傳
下一篇:MATLAB求助
