C:字符数组 与 字符串
2024-10-17 05:42:58
字符串与字符数组
- C语言中没有字符串这种数据类型,可以通过char的数组来替代;
- 字符串一定是一个char的数组,但char的数组未必是字符串;
- 数字0(和字符‘\0’等价)结尾的char数组就是一个字符串,但如果char数组没有以数字0结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char的数组。
#include <stdio.h>
int main()
{
char c1[] = { 'c', ' ', 'p', 'r', 'o', 'g' }; //普通字符数组
printf("c1 = %s\n", c1); //乱码,因为没有’\0’结束符
//以‘\0’(‘\0’就是数字0)结尾的字符数组是字符串
char c2[] = { 'c', ' ', 'p', 'r', 'o', 'g', '\0'};
printf("c2 = %s\n", c2);
//字符串处理以‘\0’(数字0)作为结束符,后面的'h', 'l', 'l', 'e', 'o'不会输出
char c3[] = { 'c', ' ', 'p', 'r', 'o', 'g', '\0', 'h', 'l', 'l', 'e', 'o', '\0'};
printf("c3 = %s\n", c3);
return 0;
}
字符串的初始化:
#include <stdio.h>
// C语言没有字符串类型,通过字符数组模拟
// C语言字符串,以字符‘\0’, 数字0
int main()
{
//不指定长度, 没有0结束符,有多少个元素就有多长
char buf[] = { 'a', 'b', 'c' };
printf("buf = %s\n", buf); //乱码
//指定长度,后面没有赋值的元素,自动补0
char buf2[100] = { 'a', 'b', 'c' };
printf("buf2 = %s\n", buf2);
//所有元素赋值为0
char buf3[100] = { 0 };
//char buf4[2] = { '1', '2', '3' };//数组越界
char buf5[50] = { '1', 'a', 'b', '0', '7' };
printf("buf5 = %s\n", buf5);
char buf6[50] = { '1', 'a', 'b', 0, '7' };
printf("buf6 = %s\n", buf6);
char buf7[50] = { '1', 'a', 'b', '\0', '7' };
printf("buf7 = %s\n", buf7);
//使用字符串初始化,编译器自动在后面补0,常用
char buf8[] = "agjdslgjlsdjg";
//'\0'后面最好不要连着数字,有可能几个数字连起来刚好是一个转义字符
//'\ddd'八进制字义字符,'\xdd'十六进制转移字符
// \012相当于\n
char str[] = "\012abc";
printf("str == %s\n", str);
return 0;
}
使用scanf接收字符串:
#include <stdio.h>
int main()
{
char str[100];
printf("input string1 : \n");
scanf("%s", str);//scanf(“%s”,str)默认以空格分隔
printf("output:%s\n", str);
return 0;
}
最新文章
- Java中普通代码块,构造代码块,静态代码块执行顺序
- mac系统terminal连接linux
- IplImage, CvMat, Mat 的关系
- 删除binlog的方法
- redis 简介
- sharepoint One-Time Passwords (windows basic authentication)
- 写一段方便的SQL 循环查每一天的数据
- WPF实现毛玻璃效果
- Canvas之动态波浪效果_陈在真Sunny_chen_新浪博客
- Android System Property 解析
- 更新部分字段 NHibernate
- HDU 1681 Frobenius(完全背包+标记装满)
- Xcode7.3.1中SKAudioNode在Scene转换后无声的问题
- 优化之Normalizer组件
- [算法]PHP随机合并数组并保持原排序
- Python3 图片水平镜像实现
- dropzone 上传插件
- Linux基础命令---e2fsck
- 2018-2019 20165226 网络对抗 Exp1+ 逆向进阶
- go学习之文件读取问题(需更新)
热门文章
- 手机内存卡RAW无法格式化的解决办法
- PP:Classification of Time-Series Images Using Deep Convolutional Neural Networks
- StreamPipes
- normalization, standardization and regularization
- linux异常 - unzip: 未找到命令
- 【metasploit教程】之建立数据库
- 字符串UTF-8和GBK之间的转换以及判定
- GitBook相关使用以及配置笔记
- python面试的100题(10)
- python自动化测试之生成BeautifulReport可视化测试报告