回复 10楼 书生牛犊
好的,非常感谢
回复 10楼 书生牛犊
我懂您的意思了,是我想当然的觉得字符数组未被初始化就会以'\0'结尾。除了您指出的c数组,还有d数组也犯了同样的错误。我反思一下,下次再遇到此类问题时,将字符串数组初始化为空即可,编译器会自动补上'\0'。再次感谢您
#include <stdio.h> #include <ctype.h> int main( void ) { char a[81], b[81]; scanf( "%s%s", a, b ); char map[128] = { 0 }; for( char *pa=a, *pb=b; *pa; ++pa ) { if( *pa == *pb ) { ++pb; continue; } char upr = toupper(*pa); if( map[upr] == 0 ) { map[upr] = 1; printf( "%c", upr ); } } return 0; }