1樓:類鹹歧文君
開闢一段空間
#include
//memset(),strncpy()
char
str[21];
//20個字元,加乙個'\0';
把所有的資料清零
memset(str,0,21);
然後複製源字串前20個字元
strncpy(str,sourc_str,20);
//source_str是原來的字串
為了防止出現問題,也可以新增乙個'\0'在最後str[20]
='\0';
輸出printf("%s\n",str);
當然,你也可以使用malloc來開闢動態空間,不過這個使用完之後最好用free()來清除空間
2樓:黎韶琴鶴
首先,str="vc++";
語句執行後記憶體中儲存的是
'v''c'
'+''+'
'\0'
5個字元,'\0'是字串結束標記
其次,%s是輸出乙個字串的意思,故它要求乙個記憶體位址
,從這個位址開始,輸出串,直到遇到'\0'為止還有,str[i]是乙個字元變數,&str[i]就是這個變數的位址(準確的說是指標)
結合上面,就不難得出結果了,結果是:
printf("%s\n",&str[0]);是vc++
printf("%s\n",&str[1]);是c++printf("%s\n",&str[2]);是++printf("%s\n",&str[3]);是+你分析的結果是不正確的!
C 輸出字串字元問題,C 怎麼輸出字串變數
看這句cout 輸出字元指標pch的資料時是把pch當作c風格字串輸出的,而c風格字串是以 0 標誌結束的,而你的m l pch m 只能說明pch指向的第乙個字元是l,而l後面的字元是未定義的,就會一直輸出直到遇到空字元 0 於是就出現了你那樣的情況,如果一直沒有空字元出現的話,就會出現訪問越界,...
c語言的字串宣告問題,C語言的字串宣告問題
簡單說一下 字串陣列是用來存放字串的陣列,在記憶體中佔一段連續的單元。所佔記憶體存放的是字串。定義方法為 char a n n為常量表示式,可初始化。字元指標是指向字元的指標,所佔記憶體單元存放的是所指字元的記憶體單元。定義方法為 char p 完整的解答 1 字元陣列由若干個元素組成,每個元素中放...
C語言關於字串的問題,C語言關於字串的乙個問題。。
你函式的功能是去處非字母字元,也就是刪除空格個!應該輸出itis 字串是自動加上結束識別符號的 0 遇到這個停止,但是輸出列印出來螢幕上看不到 暈,其實很簡單,因為空格就是空格符不是終止符號 0 c為從輸入的資料中取出的乙個字元,不應該是字串。比較是通過ascii編碼比較的。a z對應的ascii編...
C語言字串陣列的問題,C語言字串陣列的問題
scanf 輸入時不能讀取空格鍵的,所以a儲存的是123,b儲存的是456,當然由於你是用 s輸入的,會自動在123後面加上 0 0是乙個字串的結尾 printf s n s n a i b i 這句只會輸出null int a max b max 這兩個整形陣列儲存的全是0,int的 0轉化為字元...
c語言字串加密,C語言 字串加密
include include include int main void else else if c i a c i z else else printf s n c return 0 string a welcome string b null int num a.length int asc...