scanf("%20s", Str1) 什么意思
时间: 2023-11-27 22:46:54 浏览: 85
scanf("%20s", Str1)是一个C语言中的输入函数,它的作用是从标准输入设备(通常是键盘)读取字符串,并将其存储在字符数组Str1中。其中"%20s"表示最多读取20个字符的字符串,如果输入的字符串超过20个字符,则只会读取前20个字符。如果输入的字符串中有空格,则空格后面的字符将被忽略。这个函数可以用于读取用户输入的字符串,例如:
```c
char Str1[20];
scanf("%20s", Str1); // 读取用户输入的字符串,最多20个字符
printf("输入的字符串是:%s", Str1); // 输出用户输入的字符串
```
相关问题
scanf_s("%s", &str)
scanf_s("%s", &str)是C语言中用于从标准输入中读取字符串的函数。它的作用是将用户输入的字符串存储到指定的字符数组str中。
在这个函数中,"%s"是格式控制字符串,表示要读取一个字符串。&str表示要将输入的字符串存储到str所指向的内存地址中。
需要注意的是,scanf_s函数与scanf函数不同,它是C11标准引入的安全版本函数,用于防止缓冲区溢出。在使用scanf_s函数时,需要指定要读取的字符串的最大长度,以确保不会发生缓冲区溢出。
例如,如果要读取一个最大长度为20的字符串,可以使用以下代码:
char str[21];
scanf_s("%20s", str, sizeof(str));
这样就可以安全地读取用户输入的字符串,并将其存储到str中。
#include<stdio.h> int main() { int a[10]; char str[21]; int i,j,k,n; for(i=0;i<10;i++) scanf("%d",&a[i]); scanf("%20s",str); for(j=0;j<9;j++) for(i=0;i<9;i++) if(a[i]>a[i+1]) { k=a[i];a[i]=a[i+1];a[i+1]=k; } for(i=9;i>=0;i--) printf("%d ",a[i]); printf("\n"); for(n=0;n<20;n++) { printf("%c",str[n]); if((n+1)%5==0){ printf("\n"); } if((n+1)%20==0){ printf("\n"); } } return 0; }为什么这个程序无法正确输出字符串呢
这个程序无法正确输出字符串的原因是,在输入字符串时使用了错误的格式化符号。应该使用 `%s` 而不是 `%20s` 来输入字符串。 `%20s` 表示输入一个长度不超过 20 的字符串,但是在输出时会按照字符串的实际长度输出,可能会导致输出不完整。修改后的代码如下所示:
```c
#include <stdio.h>
int main() {
int a[10];
char str[21];
int i, j, k, n;
for(i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
scanf("%s", str);
for(j = 0; j < 9; j++) {
for(i = 0; i < 9; i++) {
if(a[i] > a[i + 1]) {
k = a[i];
a[i] = a[i + 1];
a[i + 1] = k;
}
}
}
for(i = 9; i >= 0; i--) {
printf("%d ", a[i]);
}
printf("\n");
for(n = 0; n < 20; n++) {
printf("%c", str[n]);
if((n + 1) % 5 == 0) {
printf("\n");
}
if((n + 1) % 20 == 0) {
printf("\n");
}
}
return 0;
}
```
修改后的程序可以正确输出字符串。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)