C语言 字符串常用函数 示例
作者:互联网
字符串常用函数一
#include <stdio.h>
#include <string.h>
int main()
{
char *str="字符串常用函数";
puts(str); //打印+自动换行
printf("%s\n",str);
//char pstr[128]={'\0'}; //1.申请空间 2.初始化:把每个元素都初始化为'\0' 3.等于下面三句话
char *pstr=NULL; //1.野指针,造成非法内存访问,会出现段错误,cmd窗口闪退
pstr=(char *)malloc(128); //2.申请空间 一但用了malloc就要注意内存泄漏问题 malloc可能会失败,要对返回值做判断
if(pstr==NULL){
printf("申请内存失败\n");
exit(-1);
}
memset(pstr,'\0',128); //3.初始化:把每个元素都初始化为'\0', 对象开头,字符,多大
printf("请输入字符串:\n");
//scanf("%s",pstr);
gets(pstr);
puts(pstr);
return 0;
}
字符串常用函数二
#include <stdio.h>
#include <string.h>
int main()
{
//char *strcpy(char* dest, const char *src);
//char strDest[128]={'\0'};
char *strDest;
strDest=(char *)malloc(128);
memset(strDest,'\0',128);
char *strSrc="帅帅帅帅帅"; //指针或数组
strcpy(strDest,strSrc);
printf("复制完毕:%s\n",strDest) ;
memset(strDest,'\0',sizeof(strDest)/sizeof(strDest[0]));//数组可用这个
strcpy(strDest,"wsdsg");
puts(strDest);
memset(strDest,'\0',sizeof(strDest)/sizeof(strDest[0]));
strncpy(strDest,"wsdsg",3); //char *strncpy(char *destinin, char *source, int maxlen);
puts(strDest);
char test[128]="全宇宙最帅的是 ";
strcat(test,strSrc); //追加
puts(test);
char *str1="3";
char *str2="1234";
int ret=strcmp(str1,str2); //比较 =0 >+ <-
printf("ret=%d\n",ret);
return 0;
}
字符串常用函数三
#include <stdio.h>
#include <string.h>
/*
函数原型
char *strchr(const char *str, char c)
参数
str-- 要被检索的 C 字符串。
c-- 在 str 中要搜索的字符。
功能
在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置。
返回值
返回一个指向该字符串中第一次出现的字符的指针,如果字符串中不包含该字符则返回NULL空指针。 [2]
头文件
#include <string.h>
*/
/*
strstr()函数头文件:
#include <string.h>
strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:
char *strstr( char *str, char * substr );
函数参数:
str参数为要检索的字符串,
substr参数为要检索的子串。
函数返回值:
返回字符串str中第一次出现子串substr的地址;如果没有检索到子串,则返回NULL。
*/
int main()
{
char str[]="qwertyuiop";//指针改数组了
char c='t';
char *p=NULL;
p=strchr(str,c);
if(p==NULL){
printf("没找到\n");
}else{
printf("找到\n");
puts(p);
}
char substr[]="ui";//指针改数组了
p=strstr(str,substr);
if(p==NULL){
printf("没找到\n");
}else{
printf("找到\n");
puts(p);
}
char str1[]="Hello Word";//Windows环境下 要定义成数组形态,否则崩溃, Linux环境下是可以指针的
puts(strlwr(str1));//小写
puts(strupr(str1));//大写
//strtok:字符串分割,char *strtok(char *strings,const char *tokseps); qwe,asd,zxc
char str2[]="qwe,asd,zxc";
char *psubs[10];
int t=2;
p=strtok(str2,",");
if(p!=NULL){
//printf("获取到的第1个串p=%s\n",p);
psubs[t-2]=p;
}
while(1){
p=strtok(NULL,",");//后面必须NULL,奇葩喔
if(p!=NULL){
//printf("获取到的第%d个串p=%s\n",t++,p);
t++;
psubs[t-2]=p;
}else{
//printf("没有子串了!\n");
break;
}
}
int i;
for(i=0;i<t-1;i++){
puts(psubs[i]);
}
return 0;
}
标签:示例,C语言,char,str,printf,字符串,NULL,strDest 来源: https://blog.csdn.net/weixin_42613566/article/details/111464592