独一无② 发表于 2015-11-7 13:32:11

C语言保留字母 问题

输入一行字符串,删掉非英文字母后的字符串。
如:
输入:a56.+asd18+asd
输出:aasdasd

# include <stdio.h>
# include <string>
main ()
{
        char st1,st2;
        int i,s=0;
        scanf("%s",&st1);
        for(i=0;i<strlen(st1);i++)
        {
                if((st1 >= 'A' && st1 <= 'Z') || (st1>='a')&&(st1<='z'))
                {
                        st2=st1;
                        s++;
                }
       
        }
        printf("%s\n",st2);
}

问题:我发现,当有+-.% 这些字符输入时,答案就会不正确,就只有字母和数字混合时,答案会正确。不知道哪里错了,求指点。

小墨hacker 发表于 2015-11-7 13:32:12

# include <stdio.h>
# include <string.h>
int main ()
{
      char st1,st2;
      int i,s=0;
      scanf("%s",st1);//不要取地址符。
      for(i=0;i<strlen(st1);i++)
      {
                if((st1 >= 'A' && st1 <= 'Z') || (st1>='a'&&st1<='z'))
                {
                        st2=st1;
                        s++;
                }
      }
      st2='\0';//字符串结束
      printf("%s\n",st2);
      return 0;
}

小墨hacker 发表于 2015-11-7 13:50:06

不知道为什么,<string>我的编译器报误,你是不是漏打了.h。

独一无② 发表于 2015-11-7 14:23:49

小墨hacker 发表于 2015-11-7 13:50
不知道为什么,我的编译器报误,你是不是漏打了.h。

恩恩,是打漏了 .h

yuyaya1130 发表于 2015-11-7 21:05:34

。。看着很强大
页: [1]
查看完整版本: C语言保留字母 问题