string.h中经常使用函数
char * strchr(char * str ,char ch);
从字符串str中查找首次出现字符ch的位置,若存在返回查找后的地址。若不存在则返回NULL
void main(){ char a[100]="abcdefg"; printf("%o ",strchr(a,'f')); //返回字符f的地址 printf("%d ",strchr(a,'f')-a); //返回字符f在字符串中的下标 }
char * strstr(char * str ,char *str2);
在字符串str中查找首次出现子串str2的位置,若存在返回查找后的地址。若不存在返回NULL
void main(){ char a[100]="abcdefg"; printf("%o ",strstr(a,"defg")); //查找是否包括“defg”, 若存在返回子串的地址 printf("%o ",strstr(a,"1234")); //查找是否包括“1234”,不存在返回NULL printf("%d ",strstr(a,"defg")-a); //返回字串第一个字符在源字符串中的下标 }
int strcmp(char * str1,char *str2);
将字符串str1和str2中的各个字符依照ASCII依次比較大小。直到出现不同字符或者' '时为止,返回值(1)当str1出现小于str2的字符时。返回值为-1。(2)当str1出现大于str2的字符时,返回值为1。(3)当str1与str2两个字符串全然同样,则返回0。
void main(){ char a[100]="ABCD"; char b[100]="ABAB"; char c[100]="ABcd"; char d[100]="ABCD"; printf("%d ",strcmp(a,b)); //"ABCD"与"ABAB"比較C比A大。所以返回1 printf("%d ",strcmp(a,c)); //"ABCD"与"ABcd"比較C比c小,所以返回-1 printf("%d ",strcmp(a,d)); //两者全然同样所以返回0 }
char * strrev(char * str);
颠倒字符串str。并返回颠倒后的字符串地址。
void main(){ char a[100]="abcdefg"; printf("%s ",strrev(a)); }
int strlen(char * str);
求字符串str的长度。不包含' '
char * strcat(char * des ,char *src);
将src字符串连接到des字符串的后面,并返回des字符串的首地址。连接前src和des后面都有' ',连接时将des后面的' '取消掉,保留新串后面的' '
void main(){ char a[100]="abcd"; char b[100]="1234"; printf("%s ",strcat(a,b)); //将“1234”连接到"abcd"后面 }
char * strcpy(char *des,char *src);
将src字符串拷贝到des字符串中(包含' ''),并返回des字符串的首地址。des的字符串要足够长。
void main(){ char a[100]="abcdefghi"; char b[100]="1234"; printf("%s ",strcpy(a,b)); //将"1234"拷贝到"abcdefghi"中 }
char *strlwr(char *str);
将字符串str中的大写字母转换成小写,不改变其它字符。返回转换后的字符串首地址
void main(){ char a[100]="ABCD"; printf("%s ",strlwr(a)); }
char *strupr(char *str);
将字符串str中的小写字母转换成大写。不改变其它字符。返回转换后的字符串首地址
void main(){ char a[100]="abcd"; printf("%s ",strupr(a)); }
函数名中出现‘n'的情形:表示对字符串前n个字符进行处理
int strncmp(char *str1 ,char * str2。int n);
将字符串str2中的前n个字符与字符串str1进行比較,直到首次出现不同字符或者' '时为止。若n大于str2的长度,则相当于strcmp(str1,str2)
void main(){ char a[100]="abcd"; char b[100]="abcdefg"; printf("%d ",strcmp(a,b)); //"abcd"小于"abcdefg" printf("%d ",strncmp(a,b,4)); //"abcd"与"abcdefg"的前4个字符"abcd"比較 }
char * strncpy(char *des ,char *src , int n);
将src中的前n个字符拷贝到字符串或字符数组中(不自己主动加' ')。
若n大于src字符的长度,则复制整个src
void main(){ char a[100]="abcdefg"; char b[100]="1234"; //printf("%s ",strncpy(a,b,3)); // 123defg //printf("%s ",strncpy(a,b,4)); // 1234efg //printf("%s ",strncpy(a,b,5)); // 1234 ,相当于strcpy(a,b) }
char * strncat(char *des ,char *src , int n);
将src中的前n个字符连接到des字符串中并在末尾加上' '。若n大于src的长度。则连接整个src
void main(){ char a[100]="abcdefg"; char b[100]="1234"; //printf("%s ",strncat(a,b,2)); // abcdefg12 //printf("%s ",strncat(a,b,4)); // abcdefg1234 //printf("%s ",strncat(a,b,5)); // abcdefg1234 }
函数名中出现‘i'的情形:表示忽略大写和小写
int stricmp(char * str1,char *str2);
功能同strcmp,但忽略大写和小写
void main(){ char a[100]="abcd"; char b[100]="ABCD"; printf("%d ",strcmp(a,b)); //正常比較 printf("%d ",stricmp(a,b)); //忽略大写和小写比較 }
函数名中同一时候出现'n'和'i':表示对字符串前n个字符。进行忽略大写和小写的处理
int strnicmp(char * str1 ,char *str2);
将字符串str2中的前n个字符与字符串str1进行不区分大写和小写的比較,直到首次出现不同字符或者' '时为止。
ctype.h中的经常使用函数
void main(){ printf("%d ",isalpha('a')); //測试返回值,a是字母所以返回非0 printf("%d ",isalpha('1')); //測试返回值,1不是字母所以返回0 }
void main(){ printf("%d ",isalnum('a')); printf("%d ",isalnum('1')); printf("%d ",isalnum('+')); }
void main(){ printf("%d ",isdigit('b')); printf("%d ",isdigit('1')); printf("%d ",isdigit('+')); }
void main(){ printf("%d ",isupper('a')); //推断a是否是大写字母 printf("%d ",isupper('A')); //推断A是否是大写字母 printf("%d ",isupper('0')); //推断0是否是大写字母 printf("%d ",islower('a')); //推断a是否是小写字母 printf("%d ",islower('A')); //推断A是否是小写字母 printf("%d ",islower('0')); //推断0是否是小写字母 }
void main(){ printf("%c ",toupper('a')); //a转换为大写字母 printf("%c ",toupper('1')); //1不是字母原样返回 printf("%c ",tolower('A')); //A转换为小写字母 printf("%c ",tolower('1')); //1不是字母原样返回 }
void main(){ printf("%d ",ispunct('a')); printf("%d ",ispunct('1')); printf("%d ",ispunct('A')); printf("%d ",ispunct('+')); printf("%d ",ispunct('-')); printf("%d ",ispunct('*')); printf("%d ",ispunct('/')); printf("%d ",ispunct(',')); printf("%d ",ispunct('#')); printf("%d ",ispunct('%')); }