#include<stdio.h>
void strcen(char *s, char *t);
void main()
{
char a[] = "abcde";
char b[] = "fghi";
strcen(a, b);
printf("%s\n", a);
}
void strcen(char *s, char *t)
{
int i,j;
for (i = 0;s[i] != '\0';i++)
;
for (j = 0;t[j] != '\0';j++)
s[i + j] = t[j];
s[i + j] = '\0';
}
程式運行后出現以下圖示錯誤視窗,麻煩問一下大神們,我的程式錯在哪里了?
uj5u.com熱心網友回復:
1、main函式中a陣列沒有顯式宣告長度,那么它的長度就是后面字串長度+1,在呼叫子函式時,字串連接時,a資料顯然是下標越界了。2、第二個for回圈有邏輯錯誤。
3、第一個for回圈可以不用,直接呼叫strlen函式,就可以了。
void strcen(char *s, char *t);
void main()
{
char a[50] = "abcde";
char b[] = "fghi";
strcen(a, b);
printf("%s\n", a);
}
void strcen(char *s, char *t)
{
int alen = strlen(s);
for(int i = 0; t[i] != '\0'; i++){
alen +=i;
a[alen] = t[i];
}
a[alen + 1]= '\0';
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/133550.html
標籤:C++ 語言
