【发布时间】:2015-09-21 08:27:41
【问题描述】:
我是 C 新手,所以澄清一下会很有帮助!我正在尝试使用扫描仪向我的程序询问我将存储的一系列单词..到目前为止我所拥有的是,
char[]listOfWords[9999]; //creates a large array of characters
scanf("%s", listOfWords); //stores inputs into listOfWords
有了这个,我可以很容易地访问第一个词,但涉及到访问第二个和第三个词的问题..有什么建议吗?例如,我的输入是怎样的
Hello how are you guys
我可以访问“你好”没问题,但我怎么称呼“如何”和“是”
【问题讨论】:
-
char[]listOfWords[9999];不会编译。至于问题,%s会一直读取直到找到空白字符。您可以一次又一次地拨打scanf来阅读每个单词。或者干脆使用scanf("%[^\n]", listOfWords);阅读整行。请注意,如果要读取的第一个字符是\n,则先前的方法将失败,并且它会在stdin中留下换行符。另一种方法是使用fgets(listOfWords, sizeof(listOfWords), stdin);。请注意,fgets使用换行符并将其存储在listOfWords中。 -
char[]listOfWords[9999];......绝对不是 C...... -
是的,我使用了 [100] 我只是匆匆完成我的方法,我很抱歉。这是一个有趣的技术,谢谢!我的问题是,如果我这样使用它,我怎么会盲目地知道每个单词的长度?因为我相信这只会创建一长串字符,例如
-
[h,e,l,l,o, ,,h,o,w,...]
-
@user201535 如果要将整行读入
listOfWords,则需要使用strtok和空格作为分隔符来获取每个单词。然后,使用strlen查找每个单词的长度。