• C 字符/字符串经常使用函数


    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中的经常使用函数


    int isalpha(char ch);
    推断字符ch是否为字母,是字母返回非0(不一定是1),不是字母返回0
    void main(){
    	printf("%d
    ",isalpha('a')); //測试返回值,a是字母所以返回非0
    	printf("%d
    ",isalpha('1')); //測试返回值,1不是字母所以返回0
    }


    int isalnum(char ch);
    推断字符ch是否是字母或数组。若是字母或数组返回非0(不一定是1),不是则返回0
    void main(){
    	printf("%d
    ",isalnum('a')); 
    	printf("%d
    ",isalnum('1'));
    	printf("%d
    ",isalnum('+'));
    }


    int isdigit(char ch);
    推断字符ch是否为数字,是数字返回非0(不一定是1),不是则返回0
    void main(){
    	printf("%d
    ",isdigit('b')); 
    	printf("%d
    ",isdigit('1'));
    	printf("%d
    ",isdigit('+'));
    }


    int isupper(char ch);
    推断字符ch是否为大写

    int islower(char ch);
    推断字符是否为小写
    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是否是小写字母
    }
    


    char tolower(char ch);
    转换为小写

    char toupper(char ch);
    转换为大写
    void main(){
    	printf("%c
    ",toupper('a'));  //a转换为大写字母
    	printf("%c
    ",toupper('1'));  //1不是字母原样返回
    	printf("%c
    ",tolower('A'));  //A转换为小写字母
    	printf("%c
    ",tolower('1'));  //1不是字母原样返回
    }


    int ispunct(char ch);
    是否为标点(除字母,数字和空格以外的全部可打印字符)
    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('%'));
    }




  • 相关阅读:
    《使用Hibernate开发租房系统》内部测试笔试题
    C++第十课 字符串
    【011】字符数组
    C++第九课 数组
    C++第八课 局部变量和全局变量
    【010】递归函数
    C++第七课 函数2
    【009】阅读代码
    C++第六课 函数1
    【008】查找素数
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7097134.html
Copyright © 2020-2023  润新知