C语言中的字符串的初始化,以及相关方法

C语言中的字符串的初始化,以及相关方法

由外部对字符串初始化的方法

设定义字符串为 char str[10];

1.for循环+scanf(“%c”,str);一个一个输入字符

2.直接用scanf(“%s”,str);直接输入一整串字符

3.包含在头文件<stdio.h>中的gets函数,也可以直接输入一整串的字符

上述方法之间的差别以及用途

  1. 第一个最重要的区别就是,scanf函数与gets函数的区别
    (1) scanf函数返回值是一个int型整数,即正确输入了多少个值,例如 scanf(“%d%d”,&a,&b),若a,b都成功输入则返回值为2。

(2)而gets函数的返回值为,与你传过去的的实参相同的指针(即地址)。

(3)二者的结束输入符也不大相同。scanf函数的输入结束符为空格或是回车键;而gets函数的输入结束符为回车。这导致一个后果,就当你想要在字符串里添加一些空格时,只有gets函数能够满足你的需求而scanf函数不能满足。

相关例题

字符逆序
时间限制: 1Sec 内存限制: 64MB 提交: 6187 解决: 3006

题目描述
将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。
输入
输入包括一行。 第一行输入的字符串。
输出
输出转换好的逆序字符串。
样例输入
I am a student
样例输出
tneduts a ma I

例题分析

本题中,需要我们输入一个字符串,然后逆序输出,且字符串中带有空格,所以在初始化字符串时,要使用gets函数来替代scanf函数。

代码

#include<bits/stdc++.h>
int main()
{
	char str[20];
	int i;
	gets(str);
	for(i = strlen(str) - 1;i >= 0;i--){
		printf("%c",str[i]);
	}
	return 0;
 } 

(本人很菜,若有错误,缺漏,请在评论区写出,秒回,感谢)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值