Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 I';我试着让字符串只接受字母和空格,而不接受数字_C_Arrays_String_Char - Fatal编程技术网

C I';我试着让字符串只接受字母和空格,而不接受数字

C I';我试着让字符串只接受字母和空格,而不接受数字,c,arrays,string,char,C,Arrays,String,Char,这是我的理论,但它似乎不起作用。 救命 int main() { char input[50]; int i; do{ printf("ENTER A CHARACTER:"); scanf("%s",&input); if(isalpha(input)!=0){ printf("YOU INPUTTED A CHARACTER"); i++; }else{

这是我的理论,但它似乎不起作用。 救命

    int main()
    {
       char input[50];
       int i;

    do{
      printf("ENTER A CHARACTER:");
      scanf("%s",&input);

    if(isalpha(input)!=0){
       printf("YOU INPUTTED A CHARACTER");
       i++;
    }else{
       printf("INVALID INPUT\n");
    }

    }while(i!=1);

    }

isalpha将整数作为参数。 您正在提供一个字符数组

如果需要多个字符(此代码很难区分),则应循环输入[]中给定的字符数。 如果您只提供一个字符,则会退出,但如果您提供多个字符,则会继续:

#include <stdio.h>
#include <string.h>

int main()
{
    char input[50];
    int i = 0, j;
    size_t len = 0;

    do
    {
        printf("ENTER A CHARACTER:");
        scanf("%s",&input);

        len = strlen(input);

        for(j = 0; j < len; j++) {
            if(isalpha(input[j]))
            {
                i++;
                printf("YOU INPUTTED A CHARACTER %d\n", i);
            } 
            else 
            {
                printf("INVALID INPUT\n");
                break;
            }
        }
    } while(i!=1);
}
#包括
#包括
int main()
{
字符输入[50];
int i=0,j;
尺寸长度=0;
做
{
printf(“输入字符:”);
scanf(“%s”,&input);
len=strlen(输入);
对于(j=0;j
我应该使用isdigit而不是isalpha吗?但我认为结果是一样的,只是相反。脚本?C不是脚本语言……
scanf(“%s”,&input)-->
scanf(“%49s”,输入)
inti-->
inti=01)初始化
i=0
2。字符的Scanf-
Scanf(“%c”,&input[i])3。只检查当前字符:
if(isalpha(input[i]){
4。循环结束后,终止字符串:
input[i]='\0';
你确定int len;?你知道strlen返回什么吗?看看是的,它返回size\t。int是无害的,只要没有任何负值,但感谢你指出它。