12.29C语言 字符指针下
2023-12-29 23:59:40
一.字符串的复制,连接和比较及字符串长度
在头文件string.h中定义
1.字符串复制函数
char *strcpy(char *s1,char *s2)
该函数把字符串s2复制到s1,参数s1必须是字符型数组基地址(??),参数s2可以使字符数组名或者字符串常量,如strcpy(s1,"key")
#include <stdio.h>
#include <string.h> //在头文件string.h中声明
int main() {
char src[] = "Hello, World!";
char dest[20];
strcpy(dest, src); //把src存储的字符串复制到dest中
printf("Source string: %s\n", src);
printf("Copied string: %s\n", dest); //输出Hello,World!
return 0;
}
二.字符串连接函数strcat(s1,s2)
strcat(s1,s2),参数s1必须是字符型数组基地址(??),参数s2可以使字符数组名或者字符串常量,如strcpy(s1,"key").strcat()函数将字符串s2连接到s1后面,此时,s1原有的结束符'\0'被放置在连接后的结束位置上.数组s1的长度要足够大,一遍存放连接后的新字符串.
#include <stdio.h>
#include <string.h>
int main() {
char dest[50] = "Hello ,"; // 目标字符串,分配了50个字符的空间
const char* src = "World!"; // 源字符串
strcat(dest, src); // 将 src 连接到 dest 的末尾
printf("%s\n", dest); // 输出连接后的字符串
return 0;
}
他不会给字符连接处加空格,而是直接连接起来,需注意
三.字符串比较函数strcmp(s1,s2)
strcmp(s1,s2)对参数要求与前两个不一样,函数strcmp()中的参数s1s2可以是字符数组名或字符串常量.函数strcmp返回一个整数给出字符串s1s2比较的结果,
1.s1=s2,返回0;
2.s1>s2返回一个正数
3.s1<s2返回一个负数
设str1和str2都是一个字符串,在C语言中,str1和str2直接用=<>比较的是两个字符串的起始地址,而strcmp(str1,str2)==0>0<0比较的是比较两个字符串的内容
比较规则是:从两个字符串的首字符开始,依次比较相应的字符(的ASCII码),直到出现不同的字符或者遇到'\0'为止,都相同返回0;否则,以第一个不同字符的比较结果为准,返回两个字符的差.(一般是-1 0 1)
#include <stdio.h>
#include <string.h>
int main() {
const char* str1 = "Hello";//const保护常量不被修改
const char* str2 = "World";
const char* str3 = "Hello";
int result1 = strcmp(str1, str2); // 比较 "Hello" 和 "World"
int result2 = strcmp(str1, str3); // 比较 "Hello" 和 "Hello"
printf("Result of strcmp(str1, str2): %d\n", result1); // 输出负数,因为 "Hello" < "World"
printf("Result of strcmp(str1, str3): %d\n", result2); // 输出 0,因为 "Hello" == "Hello"
return 0;
}
四.字符串长度函数strlen(s1)
参数s1可以是字符数组名或者字符串常量.函数strlen()返回字符串s1的'\0'之前的字符个数,例如strlen("happy")的值为5
通过include<string.h>声明
文章来源:https://blog.csdn.net/lanssssss/article/details/135280438
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!