(八)C语言的字符串函数
字符串函数
#include <string.h> #include<ctype.h>| 函数 | 功能 |
|---|---|
| strlen(字符组) | 求字符串长度(不包含’\0’,转义字符算一个) |
| strtok(要分割的字符串, 分隔符) | 字符串分隔 |
| strcpy(字符组1,字符串2) | 字符串拷贝(字符数组1足够大) |
| strncpy(字符组1,字符串2,n) | 字符串拷贝(字符数组1足够大),n为字符串长度 |
| strcat | 字符串连接 |
| strncat | 字符串连接 |
| strcmp | 字符串比较 |
| strncmp(p,c,n) | 字符串比较 |
| strcasecmp | 忽略大小写比较字符串 |
| strchr(p,c) | 字符串查找指定字符 |
| strstr(p,p1) | 查找字符串 |
| strdup§ | 动态分配内存并复制字符串 |
| isalpha() | 检查是否为字母字符 |
| isupper() | 检查是否为大写字母字符 |
| islower() | 检查是否为x小写字母字符 |
| isdigit() | 检查是否为数字 |
求字符串长度
#include<stdio.h>#include<string.h>intmain(){chars1[]="\tabc\0";printf("%d\n",strlen(s1));printf("%d\n",sizeof(s1)/sizeof(char));return0;}字符串分隔
#include<stdio.h>#include<string.h>intmain(){// 要分割的字符串charstr[]="apple,banana;cherry|date";// 定义分隔符,这里使用逗号、分号和竖线作为分隔符constchardelim[]=",;|";// 指向当前记号的指针char*token;// 获取第一个记号token=strtok(str,delim);// 继续获取后续的记号while(token!=NULL){printf("Token: %s\n",token);token=strtok(NULL,delim);}return0;}Token:apple Token:banana Token:cherry Token:date复制字符串
#include<stdio.h>#include<string.h>#defineN30intmain(){chars1[]="abcd";chardest[N];inti,n;//strcpy(dest,s1);i=0;n=strlen(s1);while(i<=n){dest[i]=s1[i];i++;}puts(s1);puts(dest);return0;}复制字符串
#include<stdio.h>#include<string.h>#defineN30intmain(){chars1[]="abcd";chars2[3];chardest[N]=".com.cn";inti,n;strncpy(dest,s1,4);strncpy(s2,&dest[5],2);s2[2]='\0';puts(s1);puts(dest);puts(s2);return0;}连接字符串
#include<stdio.h>#include<string.h>#defineN30intmain(){chars1[]="abcd";chars2[N]=".com.cn";strcat(s2,s1);puts(s1);puts(s2);return0;}比较字符长度
#include<stdio.h>#include<string.h>intmain(){chars1[]="abcd";chars2[]="abcd\n";printf("%d\n",strcmp(s2,s1));return0;}查询字母字符
#include<stdio.h>#include<string.h>intmain(){chars1[]="abasSfdsf";intch;ch='s';printf("%p %p \n",s1,strchr(s1,ch));return0;}判断是否为字母,数字
#include<stdio.h>#include<ctype.h>intmain(){intch;while((ch=getchar())!=EOF){if(isalpha(ch)){if(isupper(ch))printf("Upper:%c\n",ch);if(islower(ch))printf("Lower:%c\n",ch);}}return0;}大写字母转小写字母,小写字母转大写字母:
#include<stdio.h>#include<ctype.h>intmain(){intch;while((ch=getchar())!=EOF){if(isalpha(ch)){if(isupper(ch))ch=tolower(ch);elseif(islower(ch))ch=toupper(ch);}printf(" %c\n",ch);}return0;}