#include"stdio.h"
#include"string.h"
int main()
{
char x[150],p[20][20];
int a,b,c,d=0,e=0,f=0;
//int p[20];
gets(x);
p[f][d]=x[0];
for(a=1;a<strlen(x);a++)
{
if(p[f][d]!=x[a])
{
for(e=0;e<strlen(p[f]);e++)
{
if(p[f][e]==x[a])
break;
}
if(e==strlen(p[f]))
{
d++;
p[f][d]=x[a];
continue;
}
}
f++;
d=0;
p[f][d]=x[a];
}
f=0;
while(p[f][0]!='\0')
{
puts(p[f]);
f++;
}
}
若按照以上原始碼輸入:abcdea
會得到輸出:
abdce
a
這里是亂碼
這里是亂碼
這里是亂碼
當我把char x[150],p[20][20];改為char x[150],p[20][20]={'\0'};時,可以得到預期的結果:
abdce
a
請問這是為什么,我的理解是:若一個字符陣列只是定義而沒有賦值,則其所有元素都是'\0'
但是這樣理解,卻出現了偏差。。。難道我的理解有誤嗎?求助
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/231837.html
標籤:新手樂園
下一篇:求蜂考離散數學5小時視頻
