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.字符定位char strcat(char s,char c);
第一个参数是字符串地址,第二个是待求字符
返回的是内存地址
#include<stdio.h>
#include<string.h>
int main(){
char s[100]="987654321";
char c;
//char *strcat(char *s,char c);找c在字符串s中第一次出现的位置
//若找到则返回该位置,即内存地址,否则返回NULL
c='8';
printf("s中的地址为:%d\n",&s[1]);
printf("返回的地址为:%d\n",strchr(s,c));
c='A';
printf("若没有则返回:%s\n",strchr(s,c));
return 0;
}
运行截图

本文详细介绍了C语言中的几个关键字符串处理函数,包括strlen用于计算字符串长度,strcpy用于复制字符串,strcat用于连接字符串,strcmp用于比较字符串,以及strchr用于查找字符在字符串中的位置。通过实例代码演示了这些函数的使用方法和返回值,帮助读者更好地理解和应用这些基本的字符串操作。
568

被折叠的 条评论
为什么被折叠?



