出現錯誤
使用for循環將一個字符串複製到另一個字符串數中,在控制檯輸出字符串,出現了一堆中文亂碼,如下圖:
錯誤原因
在字符串複製時由於字符串的長度過長,且複製時「未添加'\0'作爲字符串的結束標誌」
,沒有識別到結束信號,就出來了一堆亂碼。如下面代碼
#include<stdio.h>
#include<string.h>
int main()
{
//求b字符串在a中的位置
char s[50];
char c[50];
char si[10][50];
int d,m,n;
int lena,lenb;
scanf("%s",&s);
scanf("%s",&c);
lena = strlen(s);
lenb = strlen(c);
for(d = 0; d < lena - lenb; d++)
{
for(m = 0; m < lenb; m++)
{
//複製字符串到另一個字符串數組中
si[d][m] = s[m + d];
}
//si[d][m] = '\0'; 添加字符串結束標誌,未添加則報錯
printf("%s\n",si[d]);
if(!strcmp(si[d],c))
break;
}
printf("%s在%s中的位置:%d\n",c,s,d+1);
}