900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C语言常用字符串函数strlen strcpy strcat strcmp strchr

C语言常用字符串函数strlen strcpy strcat strcmp strchr

时间:2019-12-04 19:03:07

相关推荐

C语言常用字符串函数strlen strcpy strcat strcmp strchr

C语言常用字符串函数,求串长strlen(char *s)、串复制strcpy(char *s1,char *s2)、串连接strcat(char *s1,char *s2)、串比较strcmp(char *s1,char *s2)、串定位strchar (s,char c)演示、解析

1. 求串长函数

int strlen(char *s);

所需参数串的首地址。

返回值为int,表示串的长度。

#include<stdio.h>#include<string.h>int main(){char s[100]="abcdefg";// int strlen(char *s);求串长,返回值为整型int n;n=strlen(s);//传入字符串首地址printf("%d\n",n);return 0;}

运行截图

2. 串复制函数

char *strcpy(char *s1,char *s2);

所需参数s1为要被赋值到的字符串的地址,s2为要赋值的字符串地址。

#include<stdio.h>#include<string.h>int main(){char s1[100];char s2[100]="ABCDEF";char *s;//用于接收返回值//char *strcpy(char *s1,char *s2);将s2串复制到s1串,返回s1首地址s=strcpy(s1,s2);printf("s1地址为:%d\ns地址为:%d\n",s1,s);printf("%s\n",s);return 0;}

运行截图

若s1为非空串,则覆盖之前的

#include<stdio.h>#include<string.h>int main(){char s1[100]="9999999999999";char s2[100]="ABCDEF123";char *s; //用于接收返回值//char *strcpy(char *s1,char *s2);将s2串复制到s1串,返回s1首地址s=strcpy(s1,s2);printf("s1地址为:%d\ns地址为:%d\n",s1,s);printf("%s\n",s);return 0;}

运行截图

3.串连接函数char *strcat(char *s1,char *s2);

将s2串复制到s1串末尾,返回s1首地址

#include<stdio.h>#include<string.h>int main(){char s1[100]="123";char s2[100]="456";char *s;//char *strcat(char *s1,char *s2);将s2串复制到s1串末尾,返回s1首地址s=strcat(s1,s2);printf("s1地址为:%d\ns地址为:%d\n",s1,s);printf("%s\n",s);return 0;}

运行截图

4.字符串比较函数int *strcat(char *s1,char *s2);

是通过按位比较ASCII码值的,一旦与长度无关,一旦发现大的就不在往后比较。

当s1>s2时返回1

当s1<s2是返回-1

当s1==s2是返回0

注:ASCII码A是65、B是66、C是67、1是49

当s1>s2

#include<stdio.h>#include<string.h>int main(){char s1[100]="11C";char s2[100]="11B";int n;//int *strcat(char *s1,char *s2);比较s1和s2的大小//当s1>s2时返回1//当s1<s2是返回-1//当s1==s2是返回0//按位比较ASCII码值n=strcmp(s1,s2);printf("%d\n",n);return 0;}

运行截图

当s1<s2

#include<stdio.h>#include<string.h>int main(){char s1[100]="11A";char s2[100]="11B";int n;//int *strcat(char *s1,char *s2);比较s1和s2的大小//当s1>s2时返回1//当s1<s2是返回-1//当s1==s2是返回0//按位比较ASCII码值n=strcmp(s1,s2);printf("%d\n",n);return 0;}

运行截图

当s1==s2

#include<stdio.h>#include<string.h>int main(){char s1[100]="11A";char s2[100]="11A";int n;//int *strcat(char *s1,char *s2);比较s1和s2的大小//当s1>s2时返回1//当s1<s2是返回-1//当s1==s2是返回0//按位比较ASCII码值n=strcmp(s1,s2);printf("%d\n",n);return 0;}

运行截图

是通过按位比较ASCII码值的,一旦与长度无关,一旦发现大的就不在往后比较

#include<stdio.h>#include<string.h>int main(){char s1[100]="A";char s2[100]="11B";int n;//int *strcat(char *s1,char *s2);比较s1和s2的大小//当s1>s2时返回1//当s1<s2是返回-1//当s1==s2是返回0//按位比较ASCII码值n=strcmp(s1,s2);printf("%d\n",n);return 0;}

运行截图

**5.字符定位charstrcat(chars,char c);

第一个参数是字符串地址,第二个是待求字符

返回的是内存地址

#include<stdio.h>#include<string.h>int main(){char s[100]="987654321";char c;//char *strcat(char *s,char c);找c在字符串s中第一次出现的位置//若找到则返回该位置,即内存地址,否则返回NULLc='8';printf("s中的地址为:%d\n",&s[1]);printf("返回的地址为:%d\n",strchr(s,c));c='A';printf("若没有则返回:%s\n",strchr(s,c));return 0;}

运行截图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。