很抱歉,因为我对编程还比较新,我的代码中有些东西可能看起来像完全没有意义!我不确定我是否正确使用了atoi
。
我正在尝试创建一个程序,将用户输入的句子拆分成单词,并在用户输入数字时将数字加倍(浮点数/整数)。例如,我有3只猫
会输出:
I
have
6
cats
我的程序现在能够分割句子,但我无法将整数加倍。有人能帮忙吗?
以下是代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char sentence[100];
printf("Enter a sentence to split: ");
scanf("%[^\n]s", sentence);
char *pch;
int y;
y = atoi(sentence);
printf("After splitting:\n", sentence);
pch = strtok(sentence," ");
while (pch != NULL) {
printf("%s\n", pch);
pch = strtok(NULL, " ");
}
system("PAUSE");
}
我的输出如下:
Enter a sentence to split: Hi, I have 7 cats.
After splitting:
Hi,
I
have
7
cats.
Press any key to continue . . .
atoi()
将字符串转换为整数。您在程序开头对整个句子调用它,而不是单个单词(标记)。您真的希望整个句子都是一个整数,还是只有其中的一个单词?将您的atoi()
放在处理每个单词(标记)的循环内。另一件要考虑的事情:您如何知道标记是否为整数?请参见atoi手册。 - e0k+2
、-3
、0x20
这样的表示也可以呢? - chqrlie