C语言初级阶段4——数组3——字符数组

字符数组的定义:储存字符类型数据的集合

1.注意:如果用字符串给字符数组初始化,那么不需要{},但是要有""。

2.%s :用来输出字符串的格式占位符

3.0数据 转义字符 \0 \0表示字符串的结尾 每个字符串的末尾都有一个\0表示结束

4.%s表示输出到字符串的\0位置

#include<stdio.h>
int main() {
int arr[10];
char str[10] = { 0 };
str[0] = 'a';
str[1] = 'b';
printf("%d\n", str[1]);
return 0;
}
#include<stdio.h>
int main() {
int arr[10];
char str[10] = { 0 };
str[0] = 'a';
str[1] = 'b';
for (int i = 0; i < 10; i++)
{
printf("%c\n", str[i]);
}
char str1[10] = { "auibdeg" };
for (int i = 0; i < 10; i++)
{
printf("%c\n", str1[i]);
}
return 0;
}
#include<stdio.h>
int main() {
char str1[10]={"auibdeg"};
printf("%s\n",str1);
return 0;
}
#include<stdio.h>
int main() {
char str2[10];
str2[0] = 'a';
str2[1] = 'b';
//str2[9]='\0';
str2[2] = '\0';
printf("%s\n", str2);
return 0;
}
#include<stdio.h>
int main() {
char str2[10];
scanf("%s", str2);//单个字符需要加&多个字符不需要加&
printf("%s\n", str2);
return 0;
}
#include<stdio.h>
int main() {
char str3[10] = "你好";
char str4[] = "好";
return 0;
}
#include<stdio.h>
int main() {
char str5[10] = "abc";
printf("%c\n", &str5[3]);
char str6[10];//\0就是一个空格
/*scanf("%s",str6);
printf("%s",str6);*/
gets(str5);
puts(str5);
return 0;
}
//二维数组用来存储学生名单可以用中文赋值。
#include<stdio.h>
int main() {
char str7[3][10] =
{
{"张三"},
{"李四"},
{"王五"}
};
printf("%s\n", str7[0]);
return 0;
}

常用的字符串函数

1.strcmp用来比较两个字符串的函数

比较完之后返回一个结果,0表示两字符串相等

>0表示str>str1
<0表示str#include<stdio.h>
#include<string.h>//strcmp的头文件
int main() {
char str[10] = "aaaaaa";
char str1[10] = "aaara";
if (strcmp(str, str1) == 0)
{
printf("YES\n");
}
if (strcmp(str, str1) > 0)
{
printf(">\n");
}
if (strcmp(str, str1) < 0)
{
printf("<\n");
}
return 0;
}

2.strlen:求字符串的有效长度

warning:\0不算有效长度 sizeof是求类型大小的

#include<stdio.h>
#include<string.h>//strlen的头文件
int main() {
char str[10] = "abc";
printf("%d\n", sizeof(str));
printf("%d\n", strlen(str));
return 0;
}

3.strcat:字符串的拼接函数

把str拼接到str1的末尾

str后面的[]空间一定要给够,不然会报错,可能会损坏本文件。

#include<stdio.h>
#include<string.h>//strcat的头文件
int main() {
char str[10] = "aac";
char str1[10] = "bba";
printf("%s\n", strcat(str, str1));
/*或者是strcat(str,str1);
printf("%s\n",str);*/
return 0;
}

4.strcpy:字符串拷贝函数

把srt里面的数据替换成str1.

#include<stdio.h>
#include<string.h>//strcpy的头文件
int main() {
char str[10] = "abc";
char str1[10] = "def";
strcpy(str, str1);
char str2[10] = { 0 };
strcpy(str2, "qqqq");
printf("%s\n", str2);
printf("%s\n", str);
puts(str2);
return 0;
}

VS2022改动补充

对于scanf的改动问题的解决办法

修改方法1:将scanf换成scanf_s,如果是字符串的话需要改变格式为scanf_s("%s",变量名,变量大小)

#include<stdio.h>
#include<string.h>
int main()
{
/*char str[10];
scanf_s("%s",str,10);
printf("%s\n",str);*/
char ch;
scanf_s("%c", &ch);
printf("%c", ch);
return 0;
}

修改方法2:右击源文件,打开属性,找到SDL检查,设置为否。

对于gets的改动问题的解决办法

修改方法1:将gets换成gets_s.

修改方法2:将gets换成fgets(str,字符串大小,stdin)

C语言初级阶段4——数组3——字符数组的更多相关文章

  1. String.getBytes()和String.tocharArray(),字节数组和字符数组的区别

    String.getBytes()是将字符串转化为一个字节数组.而String.toCharArray()是将一个字符串转化为一个字符数组. [例如] byte bys[] ="国庆60周年 ...

  2. C语言中整形数组、字符数组、字符串的区别

    一. 第一 整型数组的存放,数组最后是不加'\0'的,字符串会自动加上,因此存放字符的时候数组的大小要比实际字符的多一个 第二 整型数组 每一个单元是4个字节的,字符串是一个一个字符存放的,每个字符占 ...

  3. 字符类型char、字符串与字符数组、字符数组与数据数组区别

    字符类型是以ASCII码值运算的:小写字母比相应的大写字母大32,其中A=65,a=97 Esc键 27(十进制).'\x1B'(十六进制).'\33'(八进制) 转义字符:\0 空字符     AS ...

  4. string str将str转字符数组以及字符数组初始化

    c和指针(<pointers on c>) 8.1.11 一个字符串,如"hello",一般为字符串常量,可以用它对字符指针赋值,或初始化,相当于把这个字符串常量的首地 ...

  5. String与包装类_字节数组_字符数组间的转换

    1.字符串与基本数据类型,包装类之间的转换 2.字符串与字节数组间的转换 3.字符串与字符数组间的转换 4.String与StringBuffer ①String---->StringBuffe ...

  6. 【C语言学习】-04 一维数组、字符数组

    一维数组.数组排序.字符数

  7. [日常] C语言中的字符数组和字符串

    c语言字符数组和字符串:1.存放字符的数组称为字符数组 char str[]2.'\0'也被称为字符串结束标志3.由" "包围的字符串会自动在末尾添加'\0'4.逐个字符地给数组赋 ...

  8. C语言字符数组和字符串

    用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符数组 char c[20]={'c', ' ', 'p', 'r', 'o' ...

  9. C语言字符数组超细讲解

    看到标题,有不少朋友会想:字符数组不也是数组吗?为什么要单独拿出来讲哩?莫非它是朵奇葩? 哈哈,确实,一起来认识一下这朵数组界的奇葩吧! 一.字符数组的定义.引用.初始化 大家好!我是字符数组,看我的 ...

  10. C语言数组:C语言数组定义、二维数组、动态数组、字符串数组

    1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include &l ...

随机推荐

  1. centos更改java的环境变量

    vi  /etc/profile 在最后添加这个信息,或修改这些信息 export JAVA_HOME=/usr/local/java/jdk1.8.0_251export CLASSPATH=.:$ ...

  2. 2022年JMUCTF WP

    2022年JMUCTF WP crypto 2,Are you ok Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. ...

  3. 面试之CAS

    1.CAS(Compare And Swap)比较并替换,是线程并发运行时用到的一种技术或者算法,CAS与之对应的是一些锁技术,,例如synconozied,同事这种比较替换的思想也可以运用到数据库上 ...

  4. Markdown 基础语法 备忘录

    在vscode中使用Markdown先要安装一些插件: Markdown Preview Enhanced Paste Image LimfxCodeEX Code Spell Checker 一级标 ...

  5. java基于ssm框架开发的视频论坛网站源码

    简介 Java基于ssm开发的视频论坛网站,普通用户可以浏览视频搜索视频评论点赞收藏视频,关注用户.还可以浏览新闻,发布帖子到论坛. 演示视频 https://www.bilibili.com/vid ...

  6. apk签名之后安装失败

    Android Studio 3.0.1 很奇怪的一个现象,直接run的话可以成功,debug也可以,但是用签名打包之后,却安装失败,原来是打包的时候选错了.原来签名时,Signature Versi ...

  7. Day 22 22.1.2:增量式爬虫 - 场景2的实现

    场景2的实现: 数据指纹 使用详情页的url充当数据指纹即可. 创建爬虫爬虫文件: cd project_name(进入项目目录) scrapy genspider 爬虫文件的名称(自定义一个名字即可 ...

  8. I3D论文总结

    最近看了李沐讲论文系列朱毅老师讲的I3D论文精读(视频,笔记),这里记录一下. 1.针对的问题 1.之前的视频数据集都太小,导致大多数流行的动作识别基准都很小,且即使不同模型效果有好有坏也难以区分. ...

  9. 用深度学习模型Word2Vec探索《红楼梦》人物关系

    先来看一看结果,发现: 1.贾宝玉和袭人的关系最近. 2.薛宝钗和自己的妈妈关系最近. 3.贾宝玉和林黛玉逼格比较统一,薛宝钗属于独树一帜的逼格调性. 4.大观园中可以看到邢岫烟经常出没... 还有更 ...

  10. jQuery 使用手册(一)

    一:核心部分$(expr)说明:该函数可以通过css选择器,Xpath或html代码来匹配目标元素,所有的jQuery操作都以此为基础参数:expr:字符串,一个查询表达式或一段html字符串例子:未 ...