C++中的字元陣列逐個賦值時報錯的解決方法

bigface1234fdfg發表於2015-01-20

C++中的字元陣列逐個賦值時報錯的解決方法


    C++中定義一個字元陣列的時候,如果初始化,則cout的時候不會出錯,但是在逐個字元賦值的時候,很容易出錯。


#include<iostream>
#include<string>
using namespace std; 

int main()
{
	//char s[100] = "china"; 
	char s[100]; 
	s[0]='c'; 
	s[1]='n'; 
	s[2]='\0'; 
	cout<<s<<endl; 

	return 0; 
}


如果我們直接初始化:




如果我們逐個字元的賦值:





這是為什麼呢?


原來是在逐個字元賦值的時候,一定要記住最後來個s[len-1]='\0'; 這個是字串的結束標誌!!


改正的輸出如下:





相關文章