[英]Distinguish a letter input from an integer input in c
可以提供兩種輸入:
50
b 2 40
我必須區分這兩種情況,然后采取相應的措施。 這是我嘗試過的:
char input[100];
fgets(input, 100, stdin);
printf("%s", input);
int count = 0;
char a[3][100];
int j=0, i=0;
while(true){
a[count][j] = input[i];
j++; i++;
if(input[i] == '\n'){
break;
}
if(input[i] == ' '){
count++;
j = 0;
i++;
}
}
printf("%d\n", count);
printf("%s\n", a[0]);
printf("%s\n", a[1]);
printf("%s\n", a[2]);
例如,輸入:
b 6767 9090
輸出:
b 6767 9090
b 6767 9090
2
b����
67670
9090
有人可以幫我嗎? 以前建議我使用fgets。 因為我是C語言的初學者,所以我很難確定如何實現此目標。
遇到空格時,您應該設置'\\0'
或null終止符,或者您可以預先將數組的所有元素設置為0或null,如下所示-
char a[3][100] = {0};
另外,如果用戶輸入的字符串超過三個單詞(即count> 2),則該程序將崩潰,因為loop while(true)會一直嘗試直到命中\\ n字符。
我發現最好的方法是:
char inp[25];
scanf("%s", inp);
if(inp[0] == 'b'){
int r, v;
scanf("%d %d", &r, &v);
}
else{
int v = atoi(inp);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.