#include#define N 12 int main() { char name[N]; printf("Enter your name:"); scanf("%s", name); //用 %s 格式输入,不能有空格,name前不用 地址符 & printf("Hello %s!", name); return 0; }
利用gets函数
#include用字符指针编写#define N 12 int main() { char name[N]; printf("Enter your name:"); gets(name); //用 gets 函数可以输入空格,不用 & printf("Hello %s !n", name); return 0; }
#include限制字符串长度#define N 12 int main() { char name[N]; char *ptrName = name; //写的是ptrName printf("Enter your name:"); gets(name); printf("Hello %s !n", ptrName); //ptrName return 0; }
gets函数不能限制输入字符串的长度,scanf函数也存在这个问题,限制字符串长度的函数:
fgets(name, sizeof (name), stdin);
#include#define N 12 int main() { char name[N]; printf("Enter your name:"); fgets(name, sizeof(name), stdin); //从标准输入stdin中读取一行长度为 sizeof(name) 的字符串送到 name 为首地址的储存区中 printf("Hello %s!n", name); return 0; }
在字符串中包含双引号第七行语句,限制了输入字符串的长度不能超过数组的大小 sizeof(name) ,所以用户输入的多余的字符都被舍弃了。函数 fgets () 是函数 gets () 的文件操作版。
#include#define N 12 int main() { char name[N]; char str[] = ""Hello", I said to"; //又声明了一个字符串数组。双引号用 " 内容" printf("Enter your name:"); fgets(name, sizeof(name), stdin); printf("%s %s.", str, name); //注意输出 return 0; }
是一个转义字符。若字符串中有双引号 或 反斜杠 等字符,必须在该字符前使用转义字符。
函数puts用于从括号内的参数给出的地址开始,依次输入存储单元中的字符,当遇到第一个 ' ' 时输出结束,并自动输入一个换行符。函数 puts()输入字符串简洁方便,唯一的不足是不能像函数 printf() 那样在输出行中增加一些其他字符信息(如 “Hello” 等)并控制输出格式。



