『壹』 簡單的c語言問題,字元串的輸入輸出
你的寫法沒錯,但是屬於字元數組的輸入輸出。
C語言中字元串輸入有以下方法:
例: char str[80];
1、基本輸入語句: scanf("%s",str);
2、字元串專用輸入函數: gets(str);
C語言中字元串輸出有以下方法:
例: char str[80]="abcd";
1、基本輸入語句: printf("%s",str);
2、字元串專用輸入函數: puts(str);
『貳』 C語言輸入輸出字元串
ch【5】緩沖區過短,導致溢出,ch【5】中只存了 你輸入的前5個字元,限定輸入用scanf(「%5s」,ch)就行了,這樣ch中就是就是存的你數入的前5個字元,至於char ch;錯誤是因為格式化錯誤,即%s和ch不匹配,char ch【】在c語言中是不成立的,數組必須是定長的。
『叄』 在C語言中如何實現用鍵盤輸入一個字元串,並列印出來
在C語言中實現用鍵盤輸入一個字元串,並列印出來的解決方法如下:
1、首先定義一個字元串數組,如你可以給字元串100個數組空間。如圖括弧內數字即為你定義的數組大小。
(3)字元串的輸入和輸出c語言擴展閱讀:
字元數組的輸出:
(1)用putchar()或printf()的『%c』格式符對數組進行字元賦值。例如,對於數組a[10]:用putchar()賦值:
for(i=0;i<10;i++)
a[i]=putchar();
用printf()賦值:
for(i=0;i<10;i++)
printf("%c",a[i]);
輸出結果為:
c program[2]
(2)用printf()的'%s'格式對數組賦值。還是對於數組a[10];
printf("%s",a);
輸出結果為:
c program
參考資料來源:
網路-char
網路-字元數組
『肆』 C 字元串和格式化輸入與輸出
1.前導程序
2.關於字元串
(1)字元串是一個或多個字元的序列。如"I am a student!"。
(2)C語言用空字元來標記一個字元串的結束。數組的單元數必須至少比要存儲的字元數多1。
(3)字元串和字元。'x'和"x"的區別(後者是一個字元串由'x'和'\0'組成)。
(4)Sizeof()和strlen()函數。
同一個字元串,sizeof()把標志字元串結尾的空字元計算在內,長度比strlen()大1.
strlen()以 字元 為單位給出字元串的長度。sizeof()給出數組的長度(分配的內存單元)。
獲取一個類型大大小~獲取一個具體量的大小。sizeof(char)和sizeof (name)=sizeof name。
sizeof()和strlen()
3.常量和C預處理器
(1)常量如0.015。float taxrate=0.015。把常量0.015賦值給變數taxrate,但程序可能意外的改變它的值。
(2)兩種方法const修飾符和#define預處理命令
const int MONTHS=12;
#define MONTHS +12;(#define TEE 'T')(#define OOPS "Now you have it!")
4.printf()函數
(1)printf():(「控制描述"+變數列表)~(變數使用的是值,無論該值是變數、常量、還是表達式)。
(2)printf()轉換說明符:%c--一個字元、%d--有符號十進制整數、%e--浮點數e記數法、%、f--浮點數十進制、%p--指針、%%--列印一個%、%s--字元串...:
請避免不匹配的轉換。
(3)printf()標志符:-(左對齊)、+(帶符號)、#(...)、0(對所有數字格式,用前導0填充欄位寬度)
列印一個字元串的前8個字元,欄位寬度為8字元(%8.8s)
列印雙引號\"....\"
列印一個欄位寬度在參數列表中給定的八進制整數(%*0).
%5d(00006)
指定固定欄位寬度(有效防止溢出)
(4)用printf()列印較長的字元串
a.採用多個printf()函數;
b.在一個printf()中採用(\)和回車鍵
c.採用字元串連接方法("Hello""world")
(5)printf()的函數返回值(返回所列印字元的數目,如果輸出有誤則返回-1,常用於檢查輸出錯誤。向文件中而非屏幕)
5.scanf()函數
(1)scanf()會在遇到第一個空白字元空格、製表符、或者換行符處停止讀取。~gets()函數可以用來讀取一個字元串。
(2)讀取變數類型的值加&,把字元串讀進一個字元數組不使用&。
(3)scanf("%d,%d",&n,&m)接受輸入 1,2 {scanf("%c",&ch)讀取在輸入中遇到的第一個字元}
6.關於修飾符*
printf()中在欄位寬度部分使用*來代替數字
scanf()中*使函數跳過相應的輸出項目(scanf("%*d%*d%d",&n);前兩個跳過)
『伍』 c語言字元串數組怎麼輸入和輸出呢
在C語言中,有兩個函數可以在控制台(顯示器)上輸出字元串,它們分別是:
puts():輸出字元串並自動換行,該函數只能輸出字元串。
printf():通過格式控制符%s輸出字元串,不能自動換行。除了字元串,printf() 還能輸出其他類型的數據。
這兩個函數相信大家已經非常熟悉了,這里不妨再演示一下,請看下面的代碼:
#include <stdio.h>
int main(){
char str[] = "http://c.biancheng.net";
printf("%s ", str); //通過字元串名字輸出
printf("%s ", "http://c.biancheng.net"); //直接輸出
puts(str); //通過字元串名字輸出
puts("http://c.biancheng.net"); //直接輸出
return 0;
}
運行結果:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
注意,輸出字元串時只需要給出名字,不能帶後邊的[ ],例如,下面的兩種寫法都是錯誤的:
printf("%s ", str[]);
puts(str[10]);
(5)字元串的輸入和輸出c語言擴展閱讀:
由數字、字母、下劃線組成的一串字元。一般記為 s=「a1a2···an」(n>=0)。它是編程語言中表示文本的數據類型。在程序設計中,字元串(string)為符號或數值的一個連續序列,如符號串(一串字元)或二進制數字串(一串二進制數字)。
字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。
『陸』 C語言:字元串輸入與輸出
#include
<stdio.h>
int
main()
{
char
str1[21]
=
{0},
str2[21]
=
{0},
str3[21]
=
{0};
//
getchar實現
printf("請輸入一個長度不超過20的字元串(getchar實現):");
int
c
=
0,
i
=
0;
while
((c
=
getchar())
!=
'\n')
{
str1[i++]
=
c;
}
//
scanf實現
printf("請輸入一個長度不超過20的字元串(scanf實現):");
scanf("%s",
str2);
getchar();
//
取走緩沖區的換行符
//
gets實現
printf("請輸入一個長度不超過20的字元串(gets實現):");
gets(str3);
//
putchar輸出
printf("putchar輸出:");
i
=
0;
while
(str1[i]
!=
'\0')
{
putchar(str1[i++]);
}
//
printf輸出
printf("\nprintf輸出:");
printf("%s\n",
str2);
//
puts輸出
printf("puts輸出:");
puts(str3);
printf("\n");
return
0;
}
問題答案:
1.
getchar可以根據用戶自定義的字元結束輸入,不受換行符和空白字元的限制
2.
scanf不能輸入空格,另外兩個可以
3.
在保證數據不會超出內存范圍的情況下,用gets和puts最方便
不存在空白字元的情況下,用scanf最方便
如果既有空白字元,又可能越界的情況下,getchar最方便
『柒』 c語言中如何輸入輸出字元串
在<string.h>頭文件中用字元串處理函數輸入和輸出,gest用來輸入,puts用來輸出。
字元串輸入函數gets,從鍵盤鍵入以回車結束的字元串放入字元數組中,並自動加』 '。輸入串長度應小於字元數組維數,字元串中可以包含空格。
字元串輸出函數puts,向顯示器輸出字元串(輸出完,自動換行,即用' '替'