c语言问题 输入一个含若干字符的字符串,分别搜索出其中的数字和字母,其余忽略。并输出字母和数字序列。

在线等

#include<stdio.h>
int main()
{    
     char str[100];
     char s[100],num[100];
     int index=0,index1=0,index2=0;
     gets(str);//输入字符串 
     
     while(str[index]!='\0')
     {
                            if((str[index]>='a' && str[index]<='z')||(str[index]>='A' && str[index]<='Z'))
                                                s[index1++]=str[index];
                            else if(str[index]>='0' && str[index]<='9')
                                 num[index2++] = str[index];
                            index++;
     }
     s[index1]= '\0';
     num[index2] = '\0';
     
     printf("%s\n%s",s,num);
     getch();
     return 0;
}

你看看可是要这个结果?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-06
#include<stdio.h>
#include<string.h>
void search(char *);
int main(void)
{
char ca[255] = "";
printf("input a string\n");
scanf("%s",ca);
search(ca);
return 0;
}
void search(char *str)
{
char ca[100] = "",cb[100] = "";
int i = 0, j = 0;
char *p = str;
while(*p) //这里也可以写为while(*p != '\0'),但是前者效率更高
{
if(*p >= '0' && *p <= '9') ca[i++] = *p;
else if((*p >= 'a' && *p <= 'z')||(*p >= 'A' &&*p <= 'Z')) cb[j++] = *p;
p++;
}
printf("char is %s\n", ca);
printf("number is %s\n",cb);
}
没有调试 不过应该是OK的。
相似回答