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,zxcchar 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;}
赞 (0)