一些常用的字符串处理函数在之前的文章中已经介绍过。 今天这篇文章介绍一些之前没有介绍过的功能。 在编程中,字符串相关的操作非常频繁,所以要多了解一下字符串处理。 函数库中的函数非常重要,废话不多说,下面进入正题。
一、()函数:
其一般形式为:
char *(char *str1, char *str2);
功能:用于检索两个字符串str1和str2中相同字符第一次出现的位置。 例如:str1="i love you!"、str2="you",可以看到第一个字符是o。 其函数从str1的第一个字符开始向后搜索,直到遇到'\0'。
参数:要检索的字符串。
返回值:如果str1和str2包含相同的字符,则返回指向str1中第一个匹配的字符串的指针,当然,如果没有匹配的字符,则返回空指针NULL。
注意:此函数不搜索“\0”字符。
例子:
功能
运行结果:
运算结果
从上面可以看出,返回值指向第一个匹配的字符“o”。
二、()函数:
该函数的一般形式为:
字符 *(字符 *str);
功能:用于实现字符串的倒序操作。
参数:str为要转换的字符串。
注意:该函数并不是创建新的空间来存储反转后的字符串,而是修改原字符串,因此该函数无法修改str指向的字符串常量,因为字符串常量在静态存储区中是无法修改的(常量无法修改),因此只能反转字符数组。
返回值:指向反转字符串的指针(即指向参数str的指针)。
例子:
例子
运行结果:
运算结果
三、()函数:
该函数的一般形式为:
char *(char *str, char c);
功能:该函数将str字符串中的所有字符设置为指定字符。
参数:str为要设置的字符串,参数c为要设置的字符。
将 str 中的所有字符设置为字符 c。
返回值: 指向设置字符串的指针。 该指针指向str。
注意:和前面的()函数一样,它的参数str只能是字符数组,不能是字符常量,原因同上。
例子:
例子
运行结果:
运算结果
四、()函数:
其一般形式为:
char *(char *str, char c, n);
功能:设置从字符串str的第一个字符开始到指定字符c的n个字符。
当n大于字符串长度时,所有字符串都设置为字符c。
参数:str为要设置的字符串(当然只能操作字符数组),字符c为要设置的字符,n为str中要设置的数字。
返回值:指向设置的字符串指针,即str。
注:同上。
例子:
例子
运行结果:
运算结果
五、()函数:
该函数的一般形式为:
char *(char *str1, char *str2);
功能:根据str2中的字符分割字符串str1。
参数:字符串str1为要分解的字符串,str2为分隔符字符串。
返回值:返回分割结果,如果没有匹配的分隔符则返回NULL。
说明:该函数在str1中查找str2中包含的字符,并用NULL('\0')替换(注意,只要检测到str2中的字符,就会进行分割,如str2="#$",只要遇到其中一个或两个就会产生分割),如果找到,则返回分割后的字符串,如果没有找到,则返回NULL。
注意:1、每次调用()函数只能除一次,以后就不会被忽略了。 如果要继续除法,需要重复调用()函数,但是一旦调用该函数第二次或更多次,就需要更改第一个参数。 更改为 NULL 以替换 str1。 如果第二次调用有:(NULL,char *str2)则继续分割,否则效果和第一次调用的结果一样。
2、该函数只能操作字符数组,不能操作字符常量。 例如,操作char *p="i love you"时,就会出现错误。
让我们看一个例子:
功能示例
运行结果:
运算结果
好了,今天我就暂时介绍到这里,希望对大家有所帮助。