在c语言中将数字扫描成字符串
我有一个单词列表,让我们说:在c语言中将数字扫描成字符串,c,tolower,C,Tolower,我有一个单词列表,让我们说: Hello FAR DC2012 我需要扫描所有这些字符串并将它们放入二叉树中。除扫描外,我的程序在第三个字符串“DC2012”处失败。我猜这是因为它有数字,我正在使用“tolower”函数,但我需要使用它,所以我不确定。这是我的扫描代码: while (fscanf(afp, "%s ", words) != NULL) { for(i=0; words[i]!='\0'; i++){ words[i]=
Hello
FAR
DC2012
我需要扫描所有这些字符串并将它们放入二叉树中。除扫描外,我的程序在第三个字符串“DC2012”处失败。我猜这是因为它有数字,我正在使用“tolower”函数,但我需要使用它,所以我不确定。这是我的扫描代码:
while (fscanf(afp, "%s ", words) != NULL) {
for(i=0; words[i]!='\0'; i++){
words[i]=(char)tolower(words[i]);
}
printf("%s\n", words);
它执行无限循环,使用
fgets()
而不是scanf
。而且您不需要强制执行tolower()
的返回,您的猜测是错误的:当字符不是大写字母时,tolower
将其原封不动地返回。程序失败
。它到底是如何失败的?我不太清楚,因为我使用的是visual studio,但它在第二个单词后停止打印,所以我认为它要么与以字符串形式扫描数字有关,要么与对数字使用tolower函数有关。您是如何定义单词的
?错误消息到底是什么?定义为:字符字[1000];VisualStudio让我休息一下,带我去了“setlocal.h”,并说“ptd=_getptd();”有问题,“我不知道这是什么,它不会让我继续下去。