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=0代码>1)初始化i=0
2。字符的Scanf-Scanf(“%c”,&input[i])代码>3。只检查当前字符:if(isalpha(input[i]){
4。循环结束后,终止字符串:input[i]='\0';
你确定int len;?你知道strlen返回什么吗?看看是的,它返回size\t。int是无害的,只要没有任何负值,但感谢你指出它。