| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- #include<stdio.h>
 
 - #include<string.h>
 
 - int main()
 
 - {
 
 -           int i=-1;
 
 -           char str[100];
 
 -     do
 
 -     {
 
 -               i++;
 
 -               scanf("%c",&str[i]);
 
 -         }while(str[i]!='#');
 
 -         puts(str);
 
 -         return 0;
 
 - } 
 
  复制代码 当你输入 8/(5+2)-6#  这个字符串的时候,输出末尾会有一个@的符号,这是为什么呀 
 
因为‘@’本来就在那个位置啊, 
写了个函数ShowStrData(),自己运行一下,看看string里的数据是如何变化的
 - #include<stdio.h>
 
 - void ShowStrData(char* sz,int size){
 
 -         int i;
 
 -         printf("\n");
 
 -         for (i=0;i<size;++i){
 
 -                 printf(" %02X",sz[i]);
 
 -         }
 
 -         printf("\n"); 
 
 -         for (i=0;i<size;++i){
 
 -                  if (sz[i]<=31 || sz[i]>=127) printf(" __");
 
 -                  else printf("  %c",sz[i]);
 
 -         }
 
 -         printf("\n"); 
 
 - }
 
  
 
- int main()
 
 - {
 
 -     int i=-1;
 
 -     char str[100];
 
 -     ShowStrData(str,20); 
 
 -     do
 
 -     {
 
 -         i++;
 
 -         scanf("%c",&str[i]);
 
 -     }while(str[i]!='#');
 
 -     
 
 -     ShowStrData(str,20); 
 
 -     puts(str);
 
  
-     return 0;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 |