您的位置:首页 > 其它

专题   C 语言中对字符串的操作 函数大全 二

2013-07-30 10:27 316 查看
四个最常用的函数得扩展: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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息