C 字符串的输入

#include "stdio.h"
#include "string.h"
 
#define STR_LEN 5
 
int main()
{
 char str[STR_LEN + 1], *p;
 p = str;
 
 printf("Input String: ");
 
 //方法一:容易被空格 Tab 等截断
 //scanf("%s", str);
 
 //方法二:容易溢出
 //gets(str);
 
 //方法三:C推荐的用法
 //fgets会指定大小(一般小于1024),如果超出数组大小
 //会自动根据定义数组的长度截断。
 //fgets(str, sizeof(str), stdin);
 
 //方法四:自己写函数
 read_line(str, STR_LEN); 
 
 printf("\nOuput String: %s", p);
 
 /**********************************/
 return 1;
}
/*
Read string
*/
int read_line(char str[], int ilen)
{
    char ch;
    int i = 0;
    while((ch = getchar()) != '\n')
 {
        if(i < ilen)
            str[i++] = ch;
 }
 
    str[i] = '\0';    /* terminates string */
    return i;         /* number of characters stored */
}

Comments are closed.