C語言字串輸出問題

時間 2022-03-25 09:30:47

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...