空格的ASCII碼是32;
\0的ASCII碼是0; '\0'的意思是ASCII 為0 的字符。 它所的意義是“字符串結(jié)束符”。 比如,一個字符串"Hello" ,它是由字符'H','e','l','l','o','\0' 6 個字符在內(nèi)存中連續(xù)存放的。
c語言字符串輸入:
gets函數(shù)使用方法:
gets(字符數(shù)組名);
gets函數(shù)說明
gets()函數(shù)通過判斷遇到的第一個換行符(\n)結(jié)束輸入,字符串沒有預定的長度。它讀取換行符之前(不包括換行符)的所有字符包括空格,并在這些字符后添加一個空字符(\0)。
gets()函數(shù)不會檢查存儲區(qū)是否能夠容納實際輸入的數(shù)據(jù),多出來的字符簡單地溢出到相鄰的內(nèi)存區(qū)所以定義函數(shù)時要注意開夠內(nèi)存
scanf()函數(shù)使用方法:
char s[20];
scanf("%s",s);
scanf()函數(shù)說明:
scanf()函數(shù)可以使用%s格式來讀入一個字符串,遇到比如空格、制表符或換行符就停止讀入。
字符串輸出:
puts函數(shù)使用方法:
puts(字符數(shù)組名);
puts函數(shù)說明:
可以輸出空格
可以自動換行
printf()函數(shù)使用方法:
char s[20];
scanf("%s",s);
printf("%s",s);
printf()函數(shù)說明:
不能輸出空格
記錄下c函數(shù)庫專門處理字符串的函數(shù):
頭文件:#include<string.h>
輸入輸出:
puts(str);
gets(str);
字符串連接函數(shù) :strcat(str1,str2);
printf("%s",strcat(字符數(shù)組str1,字符串str2));
字符串復制函數(shù):strcpy和strncpy
strcpy(str1,str2);//把字符串str2中復制到字符串數(shù)組str1中去;
注意:str1必須開的足夠大以便容納被復制的str2,str1的長度應大于str2的長度;str1必須寫成數(shù)組名形式,str2可以是字符數(shù)組名,也可以是字符串常量,如"China".
strncpy(str1,str2,n);//將str2中最前面兩個字符復制到str1中從而取代str1中前兩個字符.n應小于等于str1中原有字符個數(shù)(不包括 '\0' ).
字符串比較函數(shù):strcmp函數(shù)
形式:strcmp(str1,str2);
規(guī)則:按ASCII碼大小將兩個字符自左至右逐個字符字符比較,直到出現(xiàn)不同的字符或遇到 '\0' 為止.
(1)如果全部字符相同,則兩個字符串相等,函數(shù)值為0;
(2)若出現(xiàn)第一對不相同的字符,且str1>str2,則函數(shù)值為一個正整數(shù);若str1<str2,則函數(shù)值為一個負整數(shù).
測字符串長度函數(shù):strlen
形式:strlen(str);
說明:該函數(shù)值為字符串的實際長度(不包括 '\0' 在內(nèi))
轉(zhuǎn)換函數(shù):
strlwr(str); //將字符串大寫字母轉(zhuǎn)換為小寫字母
strupr(str); //將字符串小寫字母轉(zhuǎn)換為大寫字母
c++輸入輸出:
格式1:
#include<string>//C++標準庫提供了專有的字符串類型string
string s;char s[100];
cin.getline(s,6);//輸入5個字符
即:cin.getline(s,n);//輸入位字符
格式2:
getline(cin,s);//輸入可以包含空格的字符串
輸出:cout<<s;