c语言sscanf的问题

如果char* s,用fgets得到一行数据“message”message后面均为空格存在s里,再定义char* name和char* wert,动态分配内存,用sscanf分割 sscanf(s,"%s%s",name,wert)
name里面是“message”,wert里面是什么值?是NULL还是空格符?

sscanf函数,可以 返回成功读入的参数个数。个数为1,表明 读 wert 失败。
char s[]="message \n"; // fgets 读一行,含新行键, 我们可以 预置字符串
static char name[20], wert[20]; // 全局量,保证初始内存清干净了,不含杂乱字符
int N;
N=sscanf(s,"%s%s",name,wert); // 成功读入的参数个数 存入 N
printf("N=%d\n",N); // 输出 N
// N 将得到 1, 因为 %s 格式会略去 空白(空格,新行键)
// 显然,wert 没有读到东西
//打印出来可见
printf("|%s|%s|\n",name,wert);
===
输出:
N=1
|message||
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言中关于sscanf函数的运用及%n的用法
在C语言中,`sscanf` 函数是一个强大的工具,用于解析字符串中的格式化输入。与 `scanf` 相比,`sscanf` 函数多了一个参数,这个参数是第一个参数,它指定了要被解析的字符串。简单来说,`sscanf` 函数实际上就是对输入字符串的操作。例如,我们有一个字符串 `charszText[1024] = "12334.4"`,...

关于C语言scanf的疑问
接着又是一个%2d,把67送到b中。所以最后的结果就是a = 12, b = 67,c不变 具体可搜索一下“sscanf高级用法“,它们的格式是一样的。

c语言关于scanf的问题
首先,scanf,sscanf这类输入函数是支持一些简单的正则表达式。scanf("as%s",j); 的正则表达式就是"as%s",即限制输入要从as开始匹配,如果匹配不了,则认为输入错误,即相当于没有输入。如果匹配到as则后面的%s会把输入存放到f这个数组里。你可以试试这样的输入语句scanf("%*[^#]%s", j);它的...

C语言 scanf输入回车或空格时停止输入
scanf("%d",&a[i]); 无此功能,当你连续按回车时,它继续等待输入数据。可以用gets(s);再sscanf读数。用strlen(s)判断为空行,则停止输入:include<stdio.h> include<stdlib.h> void main(){ int i,a[10];char s[20];for(i=0;i<10;i++) { gets(s);if (strlen(s) < 1) brea...

C语言scanf基本问题
scanf("%d%d",&a,&b); 这个有点问题吧. 没试过,一般情况下,是需要在中间加一个空格,类似这样scanf("%d %d",&a,&b); 然后两个整型以空格为分界. 输入: 1 2(注:中间有空格)其实这个是scanf本身的一种对字符串的处理. 具体你可以熟悉一下sprintf sscanf. 他们的原理都是一样的...

c语言中scanf的输入问题
输入a\/b?是a除以b吗。如果只是输入a,b的话,int a,b;scanf("%d d",&a,&b);这样a,b的值就储存在a和b里面了。无法用scanf还有sscanf什么的,只是不同的流输入,scanf是从键盘得到输入最简便的方法了吧。

c语言用scanf( )时遇到一个难题
以下代码给你参考 int a,b,c,lost;char buf[100];while(1){ gets(buf);\/\/ 这里用了个小花招,增加了一个无用数据变量lost, 用于检测输入了多于3个数的情况 if (sscanf(buf, "%d %d %d %d", &a,&b,&c,&lost) == 3)break;else printf("请重新输入\\n");} ...

c语言编程,关于sscanf通过中文逗号截取字符串的问题
C语言sscanf函数的总结 在处理字符串的程序当中,经常会分析字符串,从一大长串的字符串截取我们需要的数据,这如果通过自己手写函数来分析,虽然可以,但当你知道sscanf的功能,那就自己写函数分析就显得多此一举。这些函数的使用都很简单,总结一下,等下次使用一目了然。俗话说:好记性不如烂笔头,...

c语言 能用sscanf函数提取一行代码中某个字符后面的字符串吗
当然能。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);} ...

sscanf函数
总结:sscanf函数是一个强大的工具,用于从字符串中读取格式化数据。它允许开发者指定数据的格式和存储位置,从而方便地处理用户输入或文件内容。然而,使用时需要注意避免常见的问题,如缓冲区溢出和类型不匹配。正确理解和使用该函数对于C语言编程非常有帮助。

相似回答