c语言sscanf截取字符串函数获取后缀名

char abd[80]="aaabc.jpg";

sscanf(abd, "%s.%s", buf1, buf2);
好像用空格等字符可以截取字符串,用点符号不能分割字符串从而获取后缀名。

可以这么处理:

#include <stdio.h>
int main()
{
char abd[80]="abcde.jpeg";
char buf1[80], buf2[80];
sscanf(abd, "%[^.]", buf1);
//先读取.之前的字符串,到.为止
sscanf(abd, "%*[^.].%s", buf2);
//先忽略.之前的字符,再读取.之后的字符
printf("%s\n", buf1);
printf("%s\n", buf2);
return 0;
}

合并成一个就是:

sscanf(abd, "%[^.].%s", buf1, buf2);

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-12
试试这样:
#include <stdio.h>
int main()
{
char abd[80]="aaabc.jpg";
char buf1[10],buf2[10];

sscanf(abd, "%[^.].%[^.]", buf1, buf2);
printf("buf1=%s buf2=%s",buf1, buf2);
}

http://baike.baidu.com/view/1364018.htm本回答被提问者和网友采纳
第2个回答  2013-04-06
如果是这样的话必须用
scanf("%[^.]", buf1);
来读取“.”之前的字母,然后用 scanf("%[^\n]", buf2); 来读取"."之后,下一行之前的字母。
第3个回答  2018-04-11
sscanf函数是无法判断你这个“.”是字符串内的还是作为分隔符的。
建议用 strchr(abd, '.'),从字符串左边来获取位置,或者strrchr从后面获取。

c语言sscanf截取字符串函数获取后缀名
buf2[80];sscanf(abd, "%[^.]", buf1);\/\/先读取.之前的字符串,到.为止sscanf(abd, "%*[^.].%s", buf2);\/\/先忽略.之前的字符,再读取.之后的字符printf("%s\\n", buf1);printf("%s\\n", buf2);return 0;}

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通过中文逗号截取字符串的问题
32. **可以看出,sscanf的返回值是读取的参数个数 33. *\/ 34.35. \/*2.取指定长度的字符串*\/ 36. string = "123456789";37. sscanf(string, "%5s", buf1);38. printf("2.string=%s\\n", string);39. printf("2.buf1=%s\\n\\n", buf1);40. \/ 41. ...

C语言 格式读取 fscanf() 如何读取至末尾结束(txt)
fscanf是有返回值的。如果返回EOF,证明到达文件结尾 在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围...

c语言如何提取一个txt文件中的字符串并去掉末尾空格(文字中的空格不去掉...
ReadString()Sscanf()Replace()就用到这几个函数就搞定

C语言字符串截取问题
如果组成部分的个数确定就很好截取,不管每个部分的长度是多少,这种情况的话用sscanf一句话就能取出来 但如果不确定一共有多少个数据组成这一条记录,那就只能循环查找分隔符再加上字符串拷贝才行

sscanf函数
答案:sscanf函数是C语言中的一个标准库函数,用于从字符串中读取格式化输入。它可以根据指定的格式,将输入字符串中的数据提取并存储到指定的变量中。详细解释:1. 函数定义与功能:sscanf函数是C语言标准库中的一部分,它的主要功能是从字符串中读取格式化的输入数据。通过该函数,开发者可以指定一种格式...

c语言 sscanf(poststr,"m=%[^&]&n=%s",m,n)中的%[^&]是什么意思?_百度...
[^&]的意思是指输入的数据要遇上&才结束;比如说在处理字符串中的scanf("%s",a);如果普通的话遇上了空格或者回车就结束了;但把它改成这个样子scanf("%[^=]",a);就表示在输入数据中是以‘=’为结束标志的。在遇到空格和回车都不结束当前输入。这句话有意思的地方就在于当使用这种特殊结束...

linux c语言 sscanf提取字符串中的数字乱码?
sscanf(cmt,"%*[^0-9]%[0-9]",imt);sscanf(cmt,"%*[^0-9]%[0-9]",imf);

C语言 截取字符串
printf("请输入字符串:\\n");gets(str);printf("请输入截获标记(比如输入字符:< >):\\n");scanf("%c %c", &chOne, &chTwo);\/* 注意!两个%c之间的空格不可省略 *\/ Intcpt(str, keyStr, chOne, chTwo);\/* 自己定义了一个截获子串函数 *\/ } 如果对你有所帮助,请记得采纳...

相似回答