C语言程序设计.复习6.<字符串的输入输出>

输入 

%s 格式

#include<stdio.h>
#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<stdio.h>
#define N 12
int main()
{
	char name[N];
	printf("Enter your name:");
	gets(name);   //用 gets 函数可以输入空格,不用 &
	printf("Hello %s !\n", name);
	return 0;
}

 用字符指针编写

#include<stdio.h>
#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<stdio.h>
#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<stdio.h>
#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用于从括号内的参数给出的地址开始,依次输入存储单元中的字符,当遇到第一个 '\0' 时输出结束,并自动输入一个换行符。函数 puts()输入字符串简洁方便,唯一的不足是不能像函数 printf() 那样在输出行中增加一些其他字符信息(如 “Hello” 等)并控制输出格式。

用字符串结束标志控制输出 

for(i = 0; str[i] != '\0'; i++)
{
	putchar(str[i]);
}
putchar('\n');

用字符串长度控制输出

len = strlen(str);
for(i = 0; i < len; i++)
{
	putchar(str[i]);
}
putchar('\n');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值