cppTest-3.0:指針相關-4(字符串函數)

/**
 *cppTest-3.0:指針相關-4(字符串函數)
 *
 *這只是簡單測試一下c語言裏的字符串函數
 *author 煒sama
 */
#include<iostream.h>
#include<string.h>
void main(){
	char tmp[20]={"草泥馬"},tmp2[20]={"勒戈壁"};
	char *s1=tmp,*s2=tmp2;
	cout<<s1<<endl;
	cout<<s2<<endl;

	cout<<strlen(s1)<<endl;//求長度

	strcat(s1,s2);//將s2接到s1尾端。注意s1空間要容得下所有內容,不然會覆蓋掉後面的數據,危險!
	              //測試發現如果內容長度超過s1的空間,調用strlen函數時返回的長度是實際的長度而不是s1所能容納的最大空間長度!
	cout<<s1<<endl;
	cout<<s2<<endl;

	cout<<strcmp(s1,s2)<<endl;//比較

	strcpy(s1,s2);//這樣子就已經複製s2到s1了,不需要再返回賦值。s2會覆蓋s1的所有字符!包括超出s2長度的字符!
	cout<<s1<<endl;
	cout<<s2<<endl;
	cout<<strcmp(s1,s2)<<endl;
	
	strcpy(s1,"abc");
	cout<<s1<<endl;

	strupr(s1);//變大寫
	cout<<s1<<endl;

	strlwr(s1);//變小寫
	cout<<s1<<endl;

	char *s3="去年qn",*s4="買了個表mLGb";
	cout<<strlen(s3)<<endl;
	cout<<strlen(s4)<<endl;
	cout<<strcmp(s3,s4)<<endl;

	//以下出錯情況再c語言中一樣!這是因爲指針s3和s4指向的是字符串常量,不能修改!
	//strcat(s3,s4);//運行時出錯!
	//strcpy(s3,s4);//運行時出錯!
	//strupr(s3);//運行時出錯!
	strlwr(s3);//不會出錯,因爲qn已經是小寫,字符串不用改變~
	//strlwr(s4);//運行時出錯!
	
	//strlwr("ABC");//出錯!這裏證明了上面的猜想是正確的!
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章