分类:
C/C# | 发表于 2016年3月25日 星期五 3:03 上午
#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 */
}