1,查找(strchr,strrchar和strstr)
strchr:查找字符,返回值为该字符在数组中首次出现的地址;
用 法: strchr(str, c);
strstr:查找字符串,返回值为该字符串在数组中首次出现的地址;
用 法: strchr(str, str1);
实例:
char *str1 = "1q23qwe456";
char *str2 = "qwe";
char c = 'q'
这里strstr返回的指针指向的字符串是qwe456,strchr返回的指针指向的字符串是q23qwe456;
但是如果char *str2 = "q",那么strstr和strchr返回的指针指向的字符串都是q23qwe456.
-----------strrchar----查找字符串中最后出现的指定字符并返回最后出现的地址;
2.比较(strcmp、strncmp、stricmp(strcmpi))
用 法: strcmp(str1, str2);返回值:如果str1与str2中的第一个不同的因素的ascii码比较,str1的较大, 则返回值为正;反之为负;完全相同则为0。
实例:
#include <stdio.h>
#include <string.h>
int main()
{
int x, y, z;
char a[] = "abb";char b[] = "aba"; char c[] = "abc"; char d[] = "abb";
x = strcmp(a, b); y = strcmp(a, c); z = strcmp(a, d);
printf("%d %d %d\n", x, y, z);
return 0;
}
运行结果;
1 -1 0
------------strncpy----用 法: strcmp(str1, str2, n);
即对str1和str2的前n个因素进行比较。
------------stricmp(strcmpi)----以大小写不敏感的方式比较,用法同strcmp;
3.复制(strcpy、strncpy)
功 能: 拷贝一个字符串到另一个
用 法: strcpy(str1, str2);即str2复制到str1;
#include<stdio.h>
#include<string.h>
int main(void)
{
char string[10];
char*str1="abcdefghi";
strcpy(string,str1);
printf("%s\n",string);
return 0;
}
strncpy即把前n个因素复制;
用法:strncpy(str1, str2,
n);
4.连接(strcat)
功 能: 字符串拼接函数
用 法: strcat(str1, str2);
即把str2连接到str1后;
5.长度(strlen)
功能: strlen函数求的是字符串的长度,它求得方法是从字符串的首地址开始到遇到第一个'\0'停止计数,如果你只定义没有给它赋初值,
这个结果是不定的,它会从字符串首地址一直记下去,直到遇到'\0'才会停止。
用法:
#include <stdio.h>
#include <string.h>
int main()
{
int x, y, z;
char a[] = "abb";char b[] = "abaf"; char c[] = "affbc";
x = strlen(a); y = strlen(b); z = strlen(c);
printf("%d %d %d\n", x, y, z);
return 0;
}
运行结果:
3 4 5
6.strcspn,strspn
1.strcspn
统计指定字符前字符个数
返回值为个数值;
实例:
#include <string.h>
main()
{
char
*str =
"Linux was first developed for 386/486-based pcs. "
;
printf
(
"%d\n"
,
strcspn
(str,
" "
));
printf
(
"%d\n"
,
strcspn
(str,
"/-"
));
printf
(
"%d\n"
,
strcspn
(str,
"1234567890"
));
}
执行结果:
5
//只计算到" "的出现, 所以返回"Linux"的长度
33
//计算到出现"/"或"-", 所以返回到"6"的长度
30
// 计算到出现数字字符为止, 所以返回"3"出现前的长度
2.strspn
返回字符串中第一个不在指定字符串中出现的字符下标。
实例:
1
2
3
4
5
6
7
8
9
|
#include <string.h>
#include <stdio.h>
main()
{
char
*str=
"Linux was first developed for 386/486-based pcs."
;
printf
(
"%d "
,
strspn
(str,
"Linux"
));
printf
(
"%d "
,
strspn
(str,
"/-"
));
printf
(
"%d\n"
,
strspn
(str,
"1234567890"
));
}
|
5 0 0
7.颠倒(strrev)
功能:把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。
说明:返回指向颠倒顺序后的字符串指针。
8.小写转大写(strupr)
用法:
strupr(str);