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:字符數組常作為字符串使用,作為字符串要有字符串結束符'\0'

    可以使用字符串為字符數組賦值。例如:

char a[]="HeLLO WORD";

等同於

char a[]="HeLLO WORD\0";

代碼如下:

未使用字符串結束符'\0'時

// 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("%s\n",array);
}
View Code

運行結果:

使用結束符'\0'后

// 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] = '\0';
    printf("%s\n",array);
}
View Code

運行結果:

    可見,如果字符串沒有結束符,函數會按整個字符數組輸出。array字符數組中只有前兩個字初始化了,所以未使用字符串結束符'\0'的程序會出現亂碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM