有一个字符数组
char *p="1 12 13 1 5 6 9 8 7 4 5 6 3 2 1 4 5 6";
怎样把其中的数读入到一个数组中,比如:
char *p="1 12 13 1 5 6 9 8 7 4 5 6 3 2 1 4 5 6";
int a[18];
int i;
for(i=0;i<18;i++)
sscanf(p,"%d",&a[i]);
最终结果却只是把p中第一个数反复读了18遍,请问该怎样改才能把数据全部读入!
谢谢!
可是我这里用的是C,没有iostream
追答这只是我用了c++的头文件而已,你可以不用管
追问刚刚还没看完,抱歉!还有一个问题:这里从字符串读入的数不是单个的数字,比如说12是以一个整体读入的。另外,其实字符数组的长度是不定的
追答你运行了么~~~我这里就是将12看成一个整体的啊
抱歉刚刚脑子进水,如果你是不确定个数的数组的话,有点麻烦,不过我写过类似的
可以的,刚刚糊涂了,没注意到 %[ 0-9],哈哈!没办法,修改追问没有赶上你回答的速度!麻烦了
追答如果你不确定有多少个数的话。。就用temp这个数组是不是为空来循环,应该不难吧,自己调一调
追问动态数组这个问题我自己能解决的,只是对C的输入输出不了解(以前学的是C++)。非常感谢!
c语言中关于sscanf函数的运用及%n的用法
在C语言中,`sscanf` 函数是一个强大的工具,用于解析字符串中的格式化输入。与 `scanf` 相比,`sscanf` 函数多了一个参数,这个参数是第一个参数,它指定了要被解析的字符串。简单来说,`sscanf` 函数实际上就是对输入字符串的操作。例如,我们有一个字符串 `charszText[1024] = "12334.4"`,...
sscanf函数
答案:sscanf函数是C语言中的一个标准库函数,用于从字符串中读取格式化输入。它可以根据指定的格式,将输入字符串中的数据提取并存储到指定的变量中。详细解释:1. 函数定义与功能:sscanf函数是C语言标准库中的一部分,它的主要功能是从字符串中读取格式化的输入数据。通过该函数,开发者可以指定一种格式...
c语言 能用sscanf函数提取一行代码中某个字符后面的字符串吗
1、当然能。sscanf相当于格式输入,能够处理任何特殊格式的输入。2、例如:include <stdio.h>int main(){char abd[80]="aaabc.jpg";char buf1[10],buf2[10];sscanf(abd, "%[^.].%[^.]", buf1, buf2); \/\/通过ssanf获得文件名及后缀名printf("buf1=%s buf2=%s",buf1, buf2);} ...
C中的sscanf用来分隔字符串
初始化你的 buf2 和 buf3,然后再执行你原来的语句,就能看出 buf2 和 buf3 里什么都没读入。未读入的原因是 patten1 读取了 Beijing,而从 'g' 到 ',' 之间并没有任何字符。乱码是因为你没有初始化。所以解决方法就是:1) 跳过一个字符(2楼)2) 跳过一个逗号(3楼)以上任何一种方法...
c语言编程,关于sscanf通过中文逗号截取字符串的问题
12.static void sscanf_test(void);13.14.static void sscanf_test(void)15.{ 16. int ret;17. char *string;18. int digit;19. char buf1[255];20. char buf2[255];21. char buf3[255];22. char buf4[255];23.24. \/*1.最简单的用法*\/ 25. stri...
c语言sscanf截取字符串函数获取后缀名
, buf2[80];sscanf(abd, "%[^.]", buf1);\/\/先读取.之前的字符串,到.为止sscanf(abd, "%*[^.].%s", buf2);\/\/先忽略.之前的字符,再读取.之后的字符printf("%s\\n", buf1);printf("%s\\n", buf2);return 0;}合并成一个就是:sscanf(abd, "%[^.].%s", buf1, buf2);...
C语言怎么根据ASCII码判断输入的数据是字符串还是纯数字
C语言使用的读入键盘输入的函数较常用的一般有:scanf fscanf sscanf getchar gets scanf、fscanf、sscanf 根据你定义的字符格式来判断是字符串还是纯数字。例如:scanf("%d",a);使用了格式控制%d就表示输入的十进制整数;scanf("%",a);控制%s就表示输入的字符串。详细格式控制符如下:a 读浮点值(仅...
c语言scanf输入字符串为何要加getchar
第一个scanf读入字符串后,换行符留在输入缓冲区中,被第二个scanf读入(scanf的格式字符串为%c时会读取一切字符包括换行和回车),因而造成错误。可在第一个scanf结束后加入一行while(getchar()!='\\n');清空输入缓冲区。
单片机sscanf函数问题
红色部分表示读到的变量数量少于2(比如数据为12:30时可以读到2个变量,如果是12则只能读到一个变量),或者没有读到。sscanf的输入是字符串变量,而scanf的输入是控制台,对单片机来说,scanf的输入一般指串口输入。
c语言 sscanf(poststr,"m=%[^&]&n=%s",m,n)中的%[^&]是什么意思?
[^&]的意思是指输入的数据要遇上&才结束;比如说在处理字符串中的scanf("%s",a);如果普通的话遇上了空格或者回车就结束了;但把它改成这个样子scanf("%[^=]",a);就表示在输入数据中是以‘=’为结束标志的。在遇到空格和回车都不结束当前输入。这句话有意思的地方就在于当使用这种特殊结束...