C 字符串的输入

 1#include "stdio.h"
 2#include "string.h"
 3 
 4#define STR_LEN 5
 5 
 6int main()
 7{
 8 char str[STR_LEN + 1], *p;
 9 p = str;
10 
11 printf("Input String: ");
12 
13 //方法一:容易被空格 Tab 等截断
14 //scanf("%s", str);
15 
16 //方法二:容易溢出
17 //gets(str);
18 
19 //方法三:C推荐的用法
20 //fgets会指定大小(一般小于1024),如果超出数组大小
21 //会自动根据定义数组的长度截断。
22 //fgets(str, sizeof(str), stdin);
23 
24 //方法四:自己写函数
25 read_line(str, STR_LEN); 
26 
27 printf("\nOuput String: %s", p);
28 
29 /**********************************/
30 return 1;
31}
32/*
33Read string
34*/
35int read_line(char str[], int ilen)
36{
37    char ch;
38    int i = 0;
39    while((ch = getchar()) != '\n')
40 {
41        if(i < ilen)
42            str[i++] = ch;
43 }
44 
45    str[i] = '\0';    /* terminates string */
46    return i;         /* number of characters stored */
47}