| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 愈伤组织 于 2019-2-9 17:31 编辑  
 
请问一下这个到底是怎么一回事? 
难道数组索引号不是从0开始的? 
 
 
 
- #include <stdio.h>
 
 - int main()
 
 - {
 
 -     char ch [7]={'6','8','0','8','1','2','\0'};
 
 -     char ch1[6];
 
 -     do  {
 
 -             printf("请输入密码\n");
 
 -             scanf("%s",&ch1);
 
 -             getchar();
 
  
-         }while(ch1!=ch);
 
  
-     return 0;
 
 - }
 
 
  复制代码 
- #include <stdio.h>
 
 - int main()
 
 - {
 
  
-     char ch [6]={"zhubin\0"};
 
 -     printf("%s\n",ch);
 
 -     char ch1 [6]={"zhubin\0"};
 
 -     if(ch==ch1)
 
 -         {
 
 -             printf("%s和%s 是一样的",ch,ch1);
 
 -         }
 
 -     else
 
 -         {
 
 -             printf("%s 和 %s 不是一样的",ch,ch1);
 
 -         }
 
 -         return 0;
 
 - }
 
  复制代码 
'\0'是结束符,处理到它的时候代表字符串结束,第二个程序的数组开得太小,已经造成了越界,乱码是情理之中 
比较字符串是不是一样需要调用string中的strcmp函数,如果想要自己写也是可以,这里给你个思路,依次比较字符串每一位是不是相同,处理到结束符'\0'结束判断  
 
 
 |   
 
 
 
 |