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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);

参考技术A 试试这样:
#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本回答被提问者和网友采纳
参考技术B 如果是这样的话必须用
scanf("%[^.]", buf1);
来读取“.”之前的字母,然后用 scanf("%[^\n]", buf2); 来读取"."之后,下一行之前的字母。
参考技术C sscanf函数是无法判断你这个“.”是字符串内的还是作为分隔符的。
建议用 strchr(abd, '.'),从字符串左边来获取位置,或者strrchr从后面获取。

php常用函数

字符串函数

strlen:获取字符串长度,字节长度

substr:字符串截取,获取字符串(按照字节进行截取)

strchr:与substr相似,从指定位置截取一直到最后

strrchr(获取文件后缀名):与strchr一样,只是从右边开始查找字符

strtolower:所有的字符都小写(针对英文字母)

strtoupper:所有的字符都大写

strrev:字符串反转(只能反转英文:英文存储只有一个字节),按照字节进行反转

strpos:从字符串中找对应字符出现的位置(数字下标),从最左边开始找

strrpos:与strpos一样,只是从字符串的右边开始找

trim:去掉函数两边的字符,默认是空格

时间日期函数

time:得到当前时间的时间戳(整型:从格林威治时间1970年1月1日0时0分0秒开始)秒数

date:时间序列化函数,将指定的时间戳转换成规定时间日期的显示格式(随意的字符串:有专业的格式符规定),如果没有指定时间戳,系统默认使用当前时间的时间戳

strtotime:时间日期格式的字符串转换成对应的时间戳(只要是正确的英语时间表达方式,都可以进行转换)

microtime:微秒时间戳,根据不同的要求返回不同的结果 混合 microtime (布尔类型 ),可以返回一个浮点数的时间,也可以返回一个数组(时间戳和微秒数)

数学相关函数

abs:绝对值

floor:向下取整 floor(3.2) 结果等于3

ceil:向上取整

round:四舍五入

rand:取得一个指定范围内的随机整数

mt_rand:取得一个指定范围内的随机整数(效率更高)

数组相关函数

key:获取当前数组当前指针所指向的元素的下标

current:获取的当前指针指向元素的数值

next:获取下一个元素的值,并且将指针下移

prev:获取上一个元素的值,并且将指针上移

end :将指针移到数组的最后一个元素,并返回最终指针位置的值

reset:将指针移到数组的第一个元素,返回最终指针位置的值

array_keys:获取一个数组的所有键名,返回一个索引数组

array_values:获取一个数组的所有值,返回一个索引数组

explode:爆炸,将一个字符串按照某个指定的规则(通常是特殊字符),将数组分成多个段,每一段都当做一个数组的元素,返回一个索引数组

implode:粘合,将一个数组内部的所有元素按照某个指定的规则(特殊字符),将所有的元素拼接成一个字符串

array_merge:合并,指的是将两个数组中的元素进行累计。如果后面的数组与前面的数组有下标(键名:关联)相同的,那么后面的元素的值会覆盖前面的;如果是索引的相同下标,会自动的修改下标叠加到前面的数组里。

数据结构模拟函数

array_shift:从数组的前面弹出元素,得到元素的值

array_pop:从数组的后面弹出元素,获得元素的值

array_unshift:从数组的前面压入元素,得到当前数组元素的个数

array_push:从数组的后面压入元素,得到当前数组元素的个数

判断变量

is_bool:判断是否是布尔类型

is_float:判断浮点型

is_integer:判断整型

is_object:判断对象

is_array:判断数组

is_string:判断字符串

is_resource:判断资源

is_scalar:scalar是标量的,判断是基本数据类型:整型,浮点型,布尔型和字符串型

is_null:是否为空

is_numeric:判断数字或者纯数字组成的字符串

gettype:获得数据类型

settype:改变数据类型

文件操作函数

opendir(路径):打开一个路径资源(将路径内部的所有数据读入到内存)

readdir(路径资源):从文件夹资源中读取当前资源指针所指向的文件的名字,指针会向下移动一位

closedir(资源):释放对应的文件资源

scandir(路径):读取一个路径内部的所有文件名,返回一个数组,数组的每一个元素都是文件名。

file_exists:判断一个文件是否存在(文件是广义:路径和文件)

is_dir:判断一个指定路径是否存在(文件夹)

is_file:判断一个指定路径是否是文件(文件)

mkdir:创建一个路径,如果路径存在就会报错

rmdir:移除文件夹

file_get_contents:从一个指定的文件内读取数据内容。

file_put_contents:将指定的字符串写入到对应的文件

fopen:打开一个文件资源

fgetc:c代表character,一次读取一个字符

fgets:s代表string,代表可以读取多个字符,取决于指定的读取长度或者是否碰到换行(最多只能读取一行数据)

两个函数都是对当前资源指针进行操作,读取之后都会将指针下移

fread:获取指定长度的数据直到文件结束

fwrite:向文件资源指针所在的位置写入数据,写东西不会将当前位置已有的东西往后移,而是会覆盖

fseek:将指针指定到对应的位置

fclose:使用对应的文件资源

copy:复制

unlink:删除文件

rename:重命名文件

filemtime:m代表modify,文件最后被修改的时间

filesize:文件大小(字节)

fileperms:文件权限(Linux下的八进制)

以上是关于c语言sscanf截取字符串函数获取后缀名的主要内容,如果未能解决你的问题,请参考以下文章

js中怎么截取文件后缀名

php常用函数

PHP函数

php常用函数

PHP常用函数大全

php 常用的系统函数