四个最常用的函数得扩展:strncpy,strncat,strncmp。以及strchr,strrchr函数的操作:
#include <STDIO.H>
#include <string.h>int main(){ /**************strncpy 字符串的拷贝 2********************************/ char baby[11]=""; char *boy="looove me"; char *beibei="doyou "; //字符串在数组中越界了 ,可是还是会有正确的结果 strncpy(baby,boy,4); //baby 该字符串必须先初始化,才能使用该函数 ,并且只用了boy的前4个字符进行了赋值。 并且和拼接一样的,baby 的字符串后面的字符任然保留了 printf("%s \n",baby); printf("1\n"); /*************strncat 字符串的拼接 2****************************************/ char all[30]="xixi"; //因为是要拼接字符串,所以必须初始化,并且如果是两个指针地址的话是不可用的 strncat(all,beibei,4); //拼接的知识后一字符串的前3个字符 printf("%s \n",all); printf("2 \n"); /************strcasecmp strcasecmp 串的比较,忽略大小写的 在帮助文档,并没有找见*********************************************/// int ptr;// char love[11]="FUCK YOU ";// ptr=strcasecmp(all,baby);// if(ptr>0) printf("biger\n");// else if(ptr==0) printf("same \n");// else printf("smller \n"); /************strncmp 串的比较*********************************************/ int ptr; ptr=strncmp(all,"xibaby",2); //比较的2也是头两个,不能指定 吗??? if(ptr>0) printf("biger\n"); else if(ptr==0) printf("same \n"); else printf("smller \n"); /strchr 一个串中查找给定字符的第一个匹配之处,只能是一个字符码?? 要是字呢???****/ //注意: 定义字符串,为知大小时,可以 char baby[]="do you want me,do you want me ,说说" ;//函数返回:
返回指向该位置的指针,如找不到,则返回空指针
//该函数通过比较后,通过返回结果,可以得出字符所在位置
char *ptx; int x; ptx = strchr(all,'o'); //里面比较的是字符,不能用双引号的 x=ptx-all; printf("the o is the position of %d\n",x+1); /************strrchr 最后一个出现用*****************/ printf("%s\n",all); char *pty; int y; pty = strrchr(all,'o'); //里面比较的是字符,不能用双引号的 y=pty-all; printf("the o is the position of %d\n",y+1); return 0;}