当前位置: 首页 > ops >正文

字符串(1)

1.字符串的2种定义方式和底层细节

只要用双引号括起来的都是字符串

2.练习 键盘录入字符并遍历

#include <stdio.h>
int main()
{/*需求:键盘录入一个字符串,使用程序实现在控制台遍历该字符串*///1.键盘录入一个字符串//底层逻辑://    程序在运行的时候,首先会创建一个长度为100的字符数组str//    在进行键盘录入的时候,会把每一个字符存入到上面的str数组当中,并加上结束标记//    在这个过程中,需要修改字符数组的内容,所以第一种方式可以,第二种方式不可以char str[100];printf("请录入一个字符串\n");scanf("%s", str);//str本身就是一个指针,所以不用再加&printf("接收到的字符串为:%s", str);//2.遍历字符串得到每一个字符char* p = str;while (1){//利用指针获取字符串中的每一个字符,知道遇到\0为止char c = *p;//判断当前获取到的字符是否为结束标记if(c == '\0'){//如果是结束标记,循环结束break;}printf("%c\n", c);//指针往后移动一个位置p++;}return 0;}
3.#include <stdio.h>
int main()
{/*需求:键盘录入一个字符串,使用程序实现在控制台遍历该字符串*///1.键盘录入一个字符串//底层逻辑://    程序在运行的时候,首先会创建一个长度为100的字符数组str//    在进行键盘录入的时候,会把每一个字符存入到上面的str数组当中,并加上结束标记//    在这个过程中,需要修改字符数组的内容,所以第一种方式可以,第二种方式不可以char buffer[10];printf("请录入一个字符串\n");scanf_s("%s", buffer, sizeof(buffer));//str本身就是一个指针,所以不用再加&printf("接收到的字符串为:%s\n", buffer);//2.遍历字符串得到每一个字符//遍历字符串其实就是遍历str这个数组,但是,字符串的内容不知道,所以不能用for循环,// 因为不知道循环的次数,也不知道循环的范围,但是能知道每一个字符串的结尾都会有一个\0作为结束标记,// 所以要用whie循环char* p = buffer;while (1){//利用指针获取字符串中的每一个字符,知道遇到\0为止char c = *p;//先写一个临时变量char c,用他去记录当前指针获取到的数据,//在下面就可以对获取到的数据c来做一个判断//判断当前获取到的字符是否为结束标记if (c == '\0'){//如果是结束标记,循环结束break;}//打印当前遍历到的字符printf("%c\n", c);//指针往后移动一个位置p++;}return 0;
}

3.字符串数组

#include <stdio.h>
int main()
{/*需求:定义一个数组存储5个学生的名字并进行遍历字符串的底层其实就是字符数组把多个字符数组,再放入到一个大的数组当中二维数组*///1.定义一个二维数组,存储多个学生的名字//先写一个char,然后给这个数组起一个名字,比如说就叫做strArr,就表示字符串的数组,//既然是一个二维数组,后面要写2个[],第一个表示要存多少个一维数组,第二个表示字符串有多长,可以写大一点char strArr[5][100] ={"zhangsan","lisi","wangwu","zhaoliu","qianqi"};//2.遍历二维数组for (int i = 0; i < 5; i++){//i.依次表示二维数组中的每一个索引char*str=strArr[i];//利用strArr和索引,就能获取到每一个一维数组,而这里的一维数组,其实就是表示每一个名字//然后再把他进行赋值,赋值给一个str的指针,printf("%s\n", str);//小小的细节:就在通过strArr获取每一个元素的时候,只能复制给指针,如果说再写一个数组,比如说//char str[100] =strArr[i],这样子是不行的//应该得在后面加{},即:char str[100]={}}//第二种方式//把第五个字符串的指针,放入到一个数组当中//指针数组char* strArr2[5] ={"zhangsan","lisi","wangwu","zhaoliu","qianqi"};//遍历指针数组for (int i = 0; i < 5; i++){//i:依次表示数组中的每一个索引char* str = strArr2[i];printf("%s\n", str);}return 0;
}
http://www.xdnf.cn/news/19856.html

相关文章:

  • Bug 排查日记:一次曲折的技术解谜之旅
  • matlab 数据分析教程
  • 科学研究系统性思维的方法体系:质量控制
  • Redis C++ 实现笔记(F篇)
  • C/C++关键字——union
  • Python开篇撬动未来的万能钥匙 从入门到架构的全链路指南
  • 《IC验证必看|semaphore与mailbox的核心区别》
  • [从零开始面试算法] (11/100) LeetCode 226. 反转二叉树:递归的“镜像”魔法
  • RabbitMQ学习笔记
  • 找活招工系统源码 雇员雇主小程序 后端JAVA前端uniapp
  • 《云原生深坑实录:让团队卡壳的不是配置,是底层逻辑盲区》
  • 基于扣子平台构造AutoGen框架的多智能体使用-----封装成FastAPI接口供调用
  • JVM:程序计数器
  • 基于Matlab狭窄空间环境中多无人机自重构V字队形方法研究
  • 《清远市市级政务信息化服务项目立项审批细则(试行)》标准解读
  • Jenkins调用Ansible构建LNMP平台
  • 深入探索 WebSocket:构建实时应用的核心技术
  • DarkHole: 2靶场渗透
  • 用 SPL 编写阿里云 FC2.0 函数
  • AntdesignVue 的月份区间组件用法
  • mysql分页SQL
  • Dubbo(分布式RPC调用和分布式文件储存)
  • 深入解析Django重定向机制
  • 2025React面试题集锦
  • Java 与 Docker 的最佳实践
  • wins中怎么用一个bat文件启动jar包和tomcat等多个服务
  • Linux tail 命令使用说明
  • 【C++详解】C++11(四) 包装器:function、bind、STL中⼀些变化
  • 【AI论文】UI-TARS-2技术报告:借助多轮强化学习推进图形用户界面(GUI)智能体发展
  • 20. 云计算-华为云-云服务