?
大家好,这里是争做图书馆扫地僧的小白。非常感谢各位的支持,也期待着您的关注。
目前博主有着C语言、C++、linux以及数据结构的专栏,内容正在逐步的更新。
希望对各位朋友有所帮助同时也期望可以得到各位的支持,有任何问题欢迎私信与我。
个人主页:争做图书馆扫地僧的小白_-CSDN博客
C语言专栏:C语言_争做图书馆扫地僧的小白的博客-CSDN博客
C++专栏:C++系列_争做图书馆扫地僧的小白的博客-CSDN博客
linux系统:linux系统_争做图书馆扫地僧的小白的博客-CSDN博客
数据结构:数据结构_争做图书馆扫地僧的小白的博客-CSDN博客
最后送大家一句话,路好不好走,也许我不能决定,但走不走,却只有我能决定。
目录
?????????C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
? ? ? ? 本篇程序练习时对应博主的C语言学习笔记(中)-CSDN博客,本次博客内容将围绕学习笔记中的相关知识点进行整理程序的相关练习,也是博主在学习C语言的过程中所练习的一些题目,希望对有需要的朋友有所帮助,之前的【C语言】程序练习(三)-CSDN博客与【C语言】程序练习(四)-CSDN博客已经将博主C语言学习笔记(中)-CSDN博客中的相关知识点整理了个大概,只是缺少一个字符串处理函数的相关练习题,下面就将字符串处理函数的相关练习题整理如下。
提示:以下是本篇文章正文内容,下面案例可供参考
#include <stdio.h>
#include <string.h>
int main()
{
char xiaobai[32] = "hello";
//可以直接输出
printf("strlen(xiaobai) = %ld\n", strlen(xiaobai));
//可以用变量保存计算的结果
int len = strlen(xiaobai);
printf("len = %d\n", len);
//C语言中对字符串的处理是到'\0'就结束了
char xiaobai[32] = "hello\0wrold";
printf("strlen(xiaobai) = %ld\n", strlen(xiaobai));
//清楚sizeof、strlen 区别
// 1.sizeof是关键字 strlen 是函数
// 2.sizeof计算的是占用的内存的字节数,只和定义时有关
char s[32] = "abcd";
printf("sizeof(s) = %ld\n", sizeof(s));//32
printf("strlen(s) = %ld\n", strlen(s));//4
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char s1[32] = "beijing";
char s2[32] = "hello";
printf("操作前 s1 = [%s]\n", s1);
printf("操作前 s2 = [%s]\n", s2);
strcpy(s1, s2);
printf("操作后 s1 = [%s]\n", s1);
printf("操作后 s2 = [%s]\n", s2);
printf("%c\n", s1[5]);
printf("%c\n", s1[6]);
//字符串赋值
char str[32] = {0};
strncpy(str, "hello", 6);
return 0;
}
? ? ? ? ?注意:使用strcpy将短的字符串copy给长的字符串时,长字符串后面剩下的部分还在里面,只不过通过字符串的方式访问不到了。除此之外,要保证目标字符串足够大,否则产生越界错误。
#include <stdio.h>
#include <string.h>
int main()
{
char s1[32] = "beijing";
char s2[32] = "hello";
printf("操作前 s1 = [%s]\n", s1);
printf("操作前 s2 = [%s]\n", s2);
strcat(s2, s1);
printf("操作后 s1 = [%s]\n", s1);
printf("操作后 s2 = [%s]\n", s2);
return 0;
}
? ? ? ? 注意:strcat和strcpy都需要目标字符串足够大,否则会有越界访问的风险。
#include <stdio.h>
#include <string.h>
int main()
{
char s1[32] = {0};
char s2[32] = {0};
gets(s1);
gets(s2);
printf("操作前 s1 = [%s]\n", s1);
printf("操作前 s2 = [%s]\n", s2);
int ret = strcmp(s1, s2);
if(ret > 0){
printf("s1>s2\n");
}else if(ret<0){
printf("s1<s2\n");
}else{
printf("s1==s2\n");
}
//返回值是s1和s2中第一个不相等的字符,ascii码的差值
printf("ret = %d\n", ret);
//带n的版本 表示只操作前n位
char s3[32] = "hello1234";
char s4[32] = "hello5678";
int ret2 = strncmp(s3, s4, 5);
printf("ret2 = %d\n", ret2);
return 0;
}
????????以上就是今天要讲的内容,至此本篇程序练习就将博主之前的C语言学习笔记(中)的内容给补全了,本篇程序练习只包含字符串处理函数的相关练习。后续博主将继续整理C语言的学习笔记(下)中知识点对应的程序练习,希望对有需要的朋友有所帮助。最后希望看到此处的朋友能点点关注点个赞支持一下,谢谢