C语言中的字符串的初始化,以及相关方法
由外部对字符串初始化的方法
设定义字符串为 char str[10];
1.for循环+scanf(“%c”,str);一个一个输入字符
2.直接用scanf(“%s”,str);直接输入一整串字符
3.包含在头文件<stdio.h>中的gets函数,也可以直接输入一整串的字符
上述方法之间的差别以及用途
- 第一个最重要的区别就是,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;
}
(本人很菜,若有错误,缺漏,请在评论区写出,秒回,感谢)