Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查字符串中的字符是字母、数字还是特殊字符。在c中_C_String - Fatal编程技术网

检查字符串中的字符是字母、数字还是特殊字符。在c中

检查字符串中的字符是字母、数字还是特殊字符。在c中,c,string,C,String,我一直在研究一个问题,它要求检查字符串中的数字、字母或其他特殊字符 例如,如果给您两个输入。一个是字符串长度的整数,第二个输入是字符串 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);

我一直在研究一个问题,它要求检查字符串中的数字、字母或其他特殊字符

例如,如果给您两个输入。一个是字符串长度的整数,第二个输入是字符串

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;
}
#包括
#包括
int main(){
charc[20];
int n,i;
scanf(“%d%s”、&n、c);

对于(i=1;c[i]='a'&&i为什么不尝试一些更简单的方法,比如
isalpha()
isdigit()
like

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
  }
(i=0;i { if(isalpha(c[i])) //这是字母表,所以有些代码 else if(isdigit(c[i])) //这是一个数字,所以有一些代码 其他的 //这是另一种性格 }
这实际上比您当前的代码要简单得多
#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;
}
#包括 #包括 内部主(空){ 字符输入[10]; 字符输出[10]; int i; memset(输出,'\0',10); 扫描频率(“%s”,输入); 对于(i=0;i如果((c[i]>='a'&&c[i]='a'&&c[i]查看
isdigit()
,朋友索引c数组是基于
0
。请检查您的格式,使用大括号等。(您的循环是假的)@alk啊,对不起,我错过了..简单的复制粘贴错误空格字符无法输入。@BLUEPIXY我假设输入是一个字符串,格式为
4!hs%5
,没有空格,另一个答案更好,谢谢你的回答。字符串输入没有空格,但字符串的长度应该是第一个输入,即只是一个整数。