[英]How to extract string-only from stdin using Scanf?
我是 C 的初學者並嘗試從標准輸入中提取字符。
我嘗試了兩種方法來實現這一點:
使用 scanf 將輸入存儲在一個變量中-> 一次遍歷輸入一個字符 -> 如果該字符不是 ASCII 表中的數字,則將該字符存儲在一個變量中
使用 fgets 獲取輸入並存儲在一個變量中-> 一次遍歷輸入一個字符 -> 如果該字符不是 ASCII 表中的數字,則將字符存儲在一個變量中
我想知道是否可以使用 scanf/fgets 僅從標准輸入獲取字符? 這樣我就不必遍歷每個字符。
我嘗試在下面使用 scanset ,但似乎 scanf 總是在字符級別進行篩選,並在下一個字符不符合指定格式時停止。
無論如何,我想知道是否有更強大的使用scanset & scanf。
scanf() 的代碼
#include <stdio.h>
#include <stdlib.h>
void main()
{
char str[50];
//intput = C0h1r2i3s4
scanf("%s", &str); // str = "C0h1r2i3s4"
//intput = C0h1r2i3s4
scanf("%*c%*d%s", &str); // str = "h1r2i3s4" -> C & 0 is ignored
//intput = C0h1r2i3s4
scanf("%[A-Z,a-z]%*d%s", &str); // str = "C" -> are they a valid format identifier? "%[A-Z,a-z]%*d%s"
}
在 C 中,沒有簡單的方法可以直接從標准輸入中提取某些字符。
謝謝你,忙碌的蜜蜂,你的評論在今年早些時候挽救了我的生命。 由於在 GitHub 上沒有足夠的聲譽,我無法添加評論,我剛剛意識到我可以回復自己的帖子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.