C++入门经典-例6.3-字符串之未使用字符串结束符“\0”和使用字符串结束符“\0”的区别

1:为字符串数组赋值的方式有两种,即数组元素逐一赋值和使用聚合方式赋值。

为数组元素逐一赋值。例如:

pWord[0]='H';

使用聚合方式赋值如:

char pWord[]={'H','E','L','L','O'};

2:字符数组的一些说明

(1)聚合方式只能在数组声明的时候使用

char pWord[5];

pWord={'H','E','L','L','O'};//错误

(2)字符数组不能给字符数组赋值

char a[5]={'H','E','L','L','O'};

char b[5];

a=b;//错误

a[0]=b[0];//正确

3:字符数组常作为字符串使用,作为字符串要有字符串结束符''

可以使用字符串为字符数组赋值。例如:

char a[]="HeLLO WORD";

等同于

char a[]="HeLLO WORD";

代码如下:

未使用字符串结束符''时
”和使用字符串结束符“”的区别" src="https://www.ccppcoding.com/wp-content/uploads/ContractedBlock-5006.gif" />C++入门经典-例6.3-字符串之未使用字符串结束符“<img decoding=”和使用字符串结束符“”的区别" class="j-lazy" src="https://www.ccppcoding.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="https://www.ccppcoding.com/wp-content/uploads/ContractedBlock-5006.gif" />”和使用字符串结束符“”的区别" src="https://www.ccppcoding.com/wp-content/uploads/ExpandedBlockStart-5038.gif" />C++入门经典-例6.3-字符串之未使用字符串结束符“<img decoding=”和使用字符串结束符“”的区别" class="j-lazy" src="https://www.ccppcoding.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="https://www.ccppcoding.com/wp-content/uploads/ExpandedBlockStart-5038.gif" />

// 6.3.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
void main()
{
    int i;
    char array[12];
    array[0]='a';
    array[1]='b';
    printf("%sn",array);
}

View Code
运行结果:

”和使用字符串结束符“”的区别" src="https://www.ccppcoding.com/wp-content/uploads/927385-20170916104035610-466935866.png" />C++入门经典-例6.3-字符串之未使用字符串结束符“<img decoding=”和使用字符串结束符“”的区别" class="j-lazy" src="https://www.ccppcoding.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="https://www.ccppcoding.com/wp-content/uploads/927385-20170916104035610-466935866.png" />

使用结束符''后
”和使用字符串结束符“”的区别" src="https://www.ccppcoding.com/wp-content/uploads/ContractedBlock-5006.gif" />C++入门经典-例6.3-字符串之未使用字符串结束符“<img decoding=”和使用字符串结束符“”的区别" class="j-lazy" src="https://www.ccppcoding.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="https://www.ccppcoding.com/wp-content/uploads/ContractedBlock-5006.gif" />”和使用字符串结束符“”的区别" src="https://www.ccppcoding.com/wp-content/uploads/ExpandedBlockStart-5038.gif" />C++入门经典-例6.3-字符串之未使用字符串结束符“<img decoding=”和使用字符串结束符“”的区别" class="j-lazy" src="https://www.ccppcoding.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="https://www.ccppcoding.com/wp-content/uploads/ExpandedBlockStart-5038.gif" />

// 6.3.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
void main()
{
    int i;
    char array[12];
    array[0]='a';
    array[1]='b';
    array[2] = '';
    printf("%sn",array);
}

View Code
运行结果:

”和使用字符串结束符“”的区别" src="https://www.ccppcoding.com/wp-content/uploads/927385-20170916104226094-1756967032.png" />C++入门经典-例6.3-字符串之未使用字符串结束符“<img decoding=”和使用字符串结束符“”的区别" class="j-lazy" src="https://www.ccppcoding.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="https://www.ccppcoding.com/wp-content/uploads/927385-20170916104226094-1756967032.png" />

可见,如果字符串没有结束符,函数会按整个字符数组输出。array字符数组中只有前两个字初始化了,所以未使用字符串结束符''的程序会出现乱码。

原文链接: https://www.cnblogs.com/lovemi93/p/7530553.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/259870

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午1:05
下一篇 2023年2月14日 下午1:05

相关推荐