在C中只接受字母,不接受整数

在C中只接受字母,不接受整数,c,C,我想知道如何确保只输入字符。有什么想法吗 printf("Enter Customer Name"); scanf("%s",cname); 您可以使用strspn()这样测试字符串: #include <stdio.h> #include <string.h> int main(void){ char str[100] = {0}; int len; scanf ("%99s", str); len = strlen(str);

我想知道如何确保只输入字符。有什么想法吗

printf("Enter Customer Name");

scanf("%s",cname);
您可以使用
strspn()
这样测试字符串:

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

int main(void){
    char str[100] = {0};
    int len;
    scanf ("%99s", str);
    len = strlen(str);
    if (len != strspn(str, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"))
        printf ("Your string contains non-alphabet characters.\n");
    else
        printf ("Your string is good.\n");
    return 0;
}
#包括
#包括
内部主(空){
char str[100]={0};
内伦;
scanf(“%99s”,str);
len=strlen(str);
如果(len!=strspn(str,“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz”))
printf(“您的字符串包含非字母字符。\n”);
其他的
printf(“您的字符串很好。\n”);
返回0;
}
您可以使用
strspn()
这样测试字符串:

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

int main(void){
    char str[100] = {0};
    int len;
    scanf ("%99s", str);
    len = strlen(str);
    if (len != strspn(str, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"))
        printf ("Your string contains non-alphabet characters.\n");
    else
        printf ("Your string is good.\n");
    return 0;
}
#包括
#包括
内部主(空){
char str[100]={0};
内伦;
scanf(“%99s”,str);
len=strlen(str);
如果(len!=strspn(str,“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz”))
printf(“您的字符串包含非字母字符。\n”);
其他的
printf(“您的字符串很好。\n”);
返回0;
}
您可以使用
strspn()
这样测试字符串:

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

int main(void){
    char str[100] = {0};
    int len;
    scanf ("%99s", str);
    len = strlen(str);
    if (len != strspn(str, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"))
        printf ("Your string contains non-alphabet characters.\n");
    else
        printf ("Your string is good.\n");
    return 0;
}
#包括
#包括
内部主(空){
char str[100]={0};
内伦;
scanf(“%99s”,str);
len=strlen(str);
如果(len!=strspn(str,“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz”))
printf(“您的字符串包含非字母字符。\n”);
其他的
printf(“您的字符串很好。\n”);
返回0;
}
您可以使用
strspn()
这样测试字符串:

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

int main(void){
    char str[100] = {0};
    int len;
    scanf ("%99s", str);
    len = strlen(str);
    if (len != strspn(str, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"))
        printf ("Your string contains non-alphabet characters.\n");
    else
        printf ("Your string is good.\n");
    return 0;
}
#包括
#包括
内部主(空){
char str[100]={0};
内伦;
scanf(“%99s”,str);
len=strlen(str);
如果(len!=strspn(str,“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz”))
printf(“您的字符串包含非字母字符。\n”);
其他的
printf(“您的字符串很好。\n”);
返回0;
}

您可以读入字符串,然后使用
isalpha()
或类似函数对其进行扫描

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

#define STR(x) #x
#define SSTR(x) STR(x)
#define STR_FMT(x) "%" SSTR(x) "s"

#define CNAME_MAX_LEN 50

int inputName(char *cname)
{
  size_t i;

  do
  {
    printf("Enter Customer Name: ");
    fflush(stdout);

    if (1 != scanf(STR_FMT(CNAME_MAX_LEN), cname))
      return 1;

    for (i = 0; isalpha(cname[i]); ++i);
  }
  while (i == 0 || cname[i]);

  return 0;
}

int main()
{
  char cname[CNAME_MAX_LEN + 1];

  if (inputName(cname))
  {
    perror("error reading in name!\n");
    return 1;
  }

  printf("cname is '%s'\n", cname);

  return 0;
}
#包括
#包括
#包括
#定义STR(x)#x
#定义SSTR(x)STR(x)
#定义STR_FMT(x)“%”SSTR(x)“s”
#定义CNAME_MAX_LEN 50
int inputName(char*cname)
{
尺寸i;
做
{
printf(“输入客户名称:”);
fflush(stdout);
如果(1!=scanf(STR_FMT(CNAME_MAX_LEN),CNAME))
返回1;
对于(i=0;isalpha(cname[i]);+i);
}
而(i==0 | | cname[i]);
返回0;
}
int main()
{
字符cname[cname_MAX_LEN+1];
if(输入名称(cname))
{
perror(“读取名称时出错!\n”);
返回1;
}
printf(“cname是“%s”\n”,cname);
返回0;
}

您可以读入字符串,然后使用
isalpha()
或类似函数对其进行扫描

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

#define STR(x) #x
#define SSTR(x) STR(x)
#define STR_FMT(x) "%" SSTR(x) "s"

#define CNAME_MAX_LEN 50

int inputName(char *cname)
{
  size_t i;

  do
  {
    printf("Enter Customer Name: ");
    fflush(stdout);

    if (1 != scanf(STR_FMT(CNAME_MAX_LEN), cname))
      return 1;

    for (i = 0; isalpha(cname[i]); ++i);
  }
  while (i == 0 || cname[i]);

  return 0;
}

int main()
{
  char cname[CNAME_MAX_LEN + 1];

  if (inputName(cname))
  {
    perror("error reading in name!\n");
    return 1;
  }

  printf("cname is '%s'\n", cname);

  return 0;
}
#包括
#包括
#包括
#定义STR(x)#x
#定义SSTR(x)STR(x)
#定义STR_FMT(x)“%”SSTR(x)“s”
#定义CNAME_MAX_LEN 50
int inputName(char*cname)
{
尺寸i;
做
{
printf(“输入客户名称:”);
fflush(stdout);
如果(1!=scanf(STR_FMT(CNAME_MAX_LEN),CNAME))
返回1;
对于(i=0;isalpha(cname[i]);+i);
}
而(i==0 | | cname[i]);
返回0;
}
int main()
{
字符cname[cname_MAX_LEN+1];
if(输入名称(cname))
{
perror(“读取名称时出错!\n”);
返回1;
}
printf(“cname是“%s”\n”,cname);
返回0;
}

您可以读入字符串,然后使用
isalpha()
或类似函数对其进行扫描

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

#define STR(x) #x
#define SSTR(x) STR(x)
#define STR_FMT(x) "%" SSTR(x) "s"

#define CNAME_MAX_LEN 50

int inputName(char *cname)
{
  size_t i;

  do
  {
    printf("Enter Customer Name: ");
    fflush(stdout);

    if (1 != scanf(STR_FMT(CNAME_MAX_LEN), cname))
      return 1;

    for (i = 0; isalpha(cname[i]); ++i);
  }
  while (i == 0 || cname[i]);

  return 0;
}

int main()
{
  char cname[CNAME_MAX_LEN + 1];

  if (inputName(cname))
  {
    perror("error reading in name!\n");
    return 1;
  }

  printf("cname is '%s'\n", cname);

  return 0;
}
#包括
#包括
#包括
#定义STR(x)#x
#定义SSTR(x)STR(x)
#定义STR_FMT(x)“%”SSTR(x)“s”
#定义CNAME_MAX_LEN 50
int inputName(char*cname)
{
尺寸i;
做
{
printf(“输入客户名称:”);
fflush(stdout);
如果(1!=scanf(STR_FMT(CNAME_MAX_LEN),CNAME))
返回1;
对于(i=0;isalpha(cname[i]);+i);
}
而(i==0 | | cname[i]);
返回0;
}
int main()
{
字符cname[cname_MAX_LEN+1];
if(输入名称(cname))
{
perror(“读取名称时出错!\n”);
返回1;
}
printf(“cname是“%s”\n”,cname);
返回0;
}

您可以读入字符串,然后使用
isalpha()
或类似函数对其进行扫描

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

#define STR(x) #x
#define SSTR(x) STR(x)
#define STR_FMT(x) "%" SSTR(x) "s"

#define CNAME_MAX_LEN 50

int inputName(char *cname)
{
  size_t i;

  do
  {
    printf("Enter Customer Name: ");
    fflush(stdout);

    if (1 != scanf(STR_FMT(CNAME_MAX_LEN), cname))
      return 1;

    for (i = 0; isalpha(cname[i]); ++i);
  }
  while (i == 0 || cname[i]);

  return 0;
}

int main()
{
  char cname[CNAME_MAX_LEN + 1];

  if (inputName(cname))
  {
    perror("error reading in name!\n");
    return 1;
  }

  printf("cname is '%s'\n", cname);

  return 0;
}
#包括
#包括
#包括
#定义STR(x)#x
#定义SSTR(x)STR(x)
#定义STR_FMT(x)“%”SSTR(x)“s”
#定义CNAME_MAX_LEN 50
int inputName(char*cname)
{
尺寸i;
做
{
printf(“输入客户名称:”);
fflush(stdout);
如果(1!=scanf(STR_FMT(CNAME_MAX_LEN),CNAME))
返回1;
对于(i=0;isalpha(cname[i]);+i);
}
而(i==0 | | cname[i]);
返回0;
}
int main()
{
字符cname[cname_MAX_LEN+1];
if(输入名称(cname))
{
perror(“读取名称时出错!\n”);
返回1;
}
printf(“cname是“%s”\n”,cname);
返回0;
}

比如不允许在终端中输入非字符符号,或者检查输入的结果,如果输入的符号不是字符,则要求重新输入?@rutsky如果符号不是字符,我想要求重新输入。比如不允许在终端中输入非字符符号,或者通过检查输入的结果并要求重新输入输入的符号是否不是字符?@rutsky我想要求重新输入符号是否不是字符。例如不允许在终端中输入非字符符号,或者通过检查输入的结果并要求重新输入输入的符号是否不是字符?@rutsky我想要求重新输入符号是否不是字符。例如不允许在终端中输入非字符符号,或者通过检查输入的结果并要求重新输入输入的符号是否不是字符?@rutsky我想要求重新输入符号是否不是字符。谢谢,我会试试这个谢谢,我会试试这个谢谢,我会试试这个谢谢,我会试试这个谢谢,非常感谢谢谢,非常感谢,非常感谢,非常感谢