本地网站模版批量修改网站字符,三北防护林体系建设网站,中职学校网站建设情况总结,请问的网站开发培训 有知道的吗我们这里还是在C基础上进行对C基础语法的补充学习#xff01;
一.C数组
C数组大体和C相同#xff0c;但是C数组还是有一定的区别的。
我们先看看C和C数组共同的易错点知识#xff1a;
1.数组只能一次初始化。
2.如果对数组只进行一部分初始化#xff0c;那么其他未初始…我们这里还是在C基础上进行对C基础语法的补充学习
一.C数组
C数组大体和C相同但是C数组还是有一定的区别的。
我们先看看C和C数组共同的易错点知识
1.数组只能一次初始化。
2.如果对数组只进行一部分初始化那么其他未初始化的为0.
好了下面我们就来学习C与C不同的部分了
与C不一样C初始化数组方式有了以下新的变化当然C的方式肯定还可以用
1、C可以在初始化数组时省略而C语言却不行。
int main()
{int arr[4]{ 1,2,3,4 };return 0;
}
但是如果是在C会报以下错误 2、C可以在{}内部不加任何内容此时表示将数组全部置空而在C就会报错 C语言误认为}是内容从而报无}的错误。
3、这条是C Primer Plus 上的内容说C不能进行缩窄转换但是我用VS2022发现这个现在编译器可以进行了能够进行转换大家可以利用自己的编译器看看是否可以做到。 二.字符串
C存在两种字符串写法一种是C语言的改版另一种则是C自身带有的写法。
下面我们对两种分别进行介绍
2.1.C改版
我们知道在C语言中字符串是能够拼接的原因就在于引入了C的字符串常量拼接规则。 注意如果要用C的字符串相关函数要加头文件Cstring.h改成cstring
我们知道在C中cin是以空白空格制表符和换行符来确定字符串的结束位置所以我们会发现cin一次自能读取一个单词那么如果我要的是地名可能就会出现不完全的情况所以我们引入下面两种新读取。
cin--面向单词的
getline/get--面向行的
我们先讲getline():
getline()读取整行通过回车建确定结尾有两个参数第一个是储存行的数组的名称第二个是读取的字符数这要要注意最后一个要留下给‘\0’如果读取的是20个字符数那么有效的只有19个使用方法
cin.getline(arr,20); 注意要包含头文件cstring
下面我们来讲另一种
get():
get()大体和getline相同只有一点要注意如果第二个参数输入20get不会读取换行符即20全为有效字符串而换行符留在了队列中如果下次读取内容就会先读取换行符所以如果我们使用get一定要加一行get读取换行符如下
cin.get(arr,20);
cin.get();//注意get可以不加参数
但是一直这样写万一那次忘记了是不是就可能出现大问题C给我们提供了以下写法可以将两个类函数拼接
cin.get(arr,20).get();
如果我们这样写是不是就不会忘记写了这就是C的好处后续学习相信你会喜欢上C的。
既然上面两个都可以一行读取那么我们该如何选择用哪一个呢
下面我简单带领大家看看两种的优劣
如果我们想知道编译器读取一行字符串是不是因为遇到换行符停下来的这个时候是不是就可以用get来检查了。
所以如果我们getline代码书写可能会简单一些但是如果我们使用get可以对错误进行有效检查。
上面这些都是C语言在C的改变之处但是C本生自带有字符串基本类型而且更好。
2.2.C版
C提供了string类该类隐藏了字符串的数组性质使我们能够像处理普通变量一样处理字符串。
string类使用方式如下
1、可以使用C风格来初始化string对象
2、可以用cin来将键盘的输入存储到该数组
3、可以使用cout来显示string对象
4、可以使用数组方式访问string对象
如下 string对象声明时开辟的空间为0可以根据需要来调整大小感觉是不是有点厉害。
但是远不止于此
我们在C语言中如果想要一个字符串复制给另一个字符串数组将一个字符串数组拼接到另一个字符串数组后面是不是需要一些函数如strlen()--求字符串长度strcpy--字符串复制strcat--拼接但是在string这一切都不是问题。
1.string可以直接赋值
str1str2;//将str2的值赋值给str1
2、string可以直接拼接
str1str2;//将str2拼接到str1后面
3、string可以附加
str3str1str2;//将str1和str2的值附加给str3
求字符串长度
在C语言中我们是用strlen来求这个当然可以在C使用但是C本身也有自己所带的函数
int lenstr.size()在‘.前边是所要求的字符串的名返回的是int类型值。 2.3.补充
我们之前学过wchar,char16_t,char32_t这三种特殊类型现在我们来看看此三的字符串如何表示
其实他们大体还是和之前一样只需要用数组表示即可
wchar_t name[]Lhello world;
char16_t name2[]uhello world;
char32_t name3[]Uhello world;
C除了这些还新增了原始字符串
原始字符串用“”作为界定符并且用前缀R来表示原始字符串如下
coutR(hello world);
原始字符串的作用
如果我们之前表示类似\,等是不是要加\防止被识别为转义字符现在在原始字符串中可以直接写成“\等不会被转意了。
但是有出现了下面这个问题
如果我在字符串中需要”同时出现时但是我还没结束会被认为是结束吗
答案是当然会所以我们又引入了新的写法来改进该问题。
R“**”该写法就可以避免了看代码
#include iostream
#include cstring
using namespace std;
int main()
{cout R*((Who are you?),she whispered.)* endl;return 0;
}
结果 以上就是本次内容希望对你有所帮助。