当不知道有多少个整数输入时,例如输入
58 12 64 84 20 19 20
用空格区分,最后使用回车表示结束
如何将这些整数找出来并给数组中赋值呢?
在网上有很多种方法,这里主要讲一下我使用的方法
首先用一个大一点的字符型数组模拟字符串
char str[10000];
然后用 gets 读取字符串
- 使用 gets 读取字符串要保证 buffer 的空间足够大,以免溢出
再使用 char * strtok(char *s, const char *delim); 函数将字符串分割
s 代表要传入字符串, delim 代表用来分割的依据。接下来若往后调用传入 NULL。
示例代码
gets(str);
int arr[105];
int k = 0;
char *p;
p = strtok(str, " ");
arr[k++] = atoi(p);
while(p)
{
p = strtok(NULL, " ");
if(p)
{
arr[k++] = atoi(p);
}
}
使用 atoi() 将字符串转化成 int
完美收工