C語言錯誤之字串的輸出

2021-10-24 07:09:57 字數 671 閱讀 7921

#define _crt_secure_no_warnings

#include

struct person

;int

main()

;printf

("%s,%d,%c"

, person.name[20]

, person.num, person.***)

;return0;

}

**看似正確,但輸不出結果,原因是在此處犯了乙個非常簡單的錯誤。

如何查錯:debug

錯因:倒數第三行,字串輸出時錯誤;

因為字串在c語言中是以陣列的形式進行儲存的,而陣列又是一段連續的記憶體空間。在進行輸出時,只需向編譯器傳入字串首位址即可輸出。

而倒數第三行 person.name[20]是將字串最後乙個字母(即第21個元素)進行輸出,與%s不符,所以導致編譯錯誤。

關於字串的小知識點

char c[20]

;scanf

("%s"

,c);

//此處不需要加&,因c語言陣列名表示該陣列第乙個元素的首位址

printf

("%s"

,c);

C語言之字串輸出

1.前導程式 1 include2 include 1提供strlen 的函式原型 3 define density 62.4 2預處理命令 4int main void 5 2.關於字串 1 字串是乙個或多個字元的序列。如 i am a student 2 c語言用空字元來標記乙個字串的結束。陣列...

C語言字串輸入和輸出

字串一文對字串做了個簡單介紹,若要讀取字串,則首先需要分配空間,最簡單的辦法就是宣告陣列,如下 char name 20 c語言提供了許多字串輸入函式 scanf gets 和fgets 等 輸出函式 printf puts 和fputs 函式等。本文主要講解這部分內容。另外,c 也提供了字串行輸入...

C語言 字串的輸入 輸出

c語言中沒有字串型別,而是用字元陣列 char a 代替 單字元 c 字串 s 法一 用scanf輸入字串,printf輸出字串 char ch 5 for int i 0 i 5 i for int i 0 i 5 i system pause return 0 法 二 整個字串處理 char c...