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}