我一直在研究一个问题,要求检查字符串中的数字,字母或其他特殊字符。
例如,如果您有两个输入。一个是字符串长度的整数,第二个输入是字符串。
input1: 6
input2: 4!hs%5.
输出应为:noaaon
。
n代表数字,a代表字母,o代表其他。
#include<stdio.h>
#include<string.h>
int main(){
char c[20];
int n,i;
scanf("%d %s",&n,c);
for(i=1;c[i]<=n;i++)
if(i>='a' && i<='z')
printf("%c\n",(c[i]));
if(i=='!')
printf("%c \n",i);
else
{
printf("%c \n",);
}
return 0;
}
答案 0 :(得分:4)
为什么不尝试更简单的事情,例如isalpha()
和isdigit()
for( i = 0 ; i < n ; i++ )
{
if ( isalpha( c[i] ) )
// it is an alphabet, so some code
else if ( isdigit ( c[i] ) )
// it is a number , so some code
else
// it is some other character
}
这实际上比您当前的代码
简单得多答案 1 :(得分:0)
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void) {
char input[10];
char out[10];
int i;
memset(out, '\0', 10);
scanf("%s", input);
for(i = 0; i < strlen(input); ++i){
if( (c[i] >= 'a' && c[i] <= 'z') || (c[i] >= 'A' && c[i] <= 'Z') ){
out[i] = 'a';
}
else if(isdigit(c[i])){
out[i] = 'n';
}
else{
out[i] = 'o';
}
}
printf("%s", out);
return 0;
}
您可以在此处试用:http://ideone.com/d8Id1Z