char * s_gets(char*st,int n)这个语句的作用和含义时什么
时间: 2024-04-19 07:27:12 浏览: 24
这个语句定义了一个函数名为 s_gets,它接受两个参数,分别是一个字符指针 st 和一个整数 n。函数的返回类型是 char* 。s_gets 函数的作用是从输入流中读取字符串,并将其存储在字符指针 st 指向的数组中,最多读取 n-1 个字符。函数会在遇到换行符、文件结束符或达到最大字符数时停止读取,并返回指向存储的字符串的指针。
相关问题
char * s_gets (char * st,int n);这个语句的作用是什么
这个语句的作用是定义了一个名为 `s_gets` 的函数,它接受一个指向字符数组的指针 `st` 和一个整数 `n` 作为参数,并且返回一个指向字符的指针。这个函数通常用于获取用户输入的字符串,并且可以限制字符串的最大长度为 `n-1`。它会读取用户输入的字符串,直到遇到换行符或者达到最大长度。返回的指针指向输入的字符串(包括换行符),或者在输入为空时返回空指针。
#include <stdio.h> int main() { char *p, s[6]; int n; p = s; gets(p); n = *p - '0'; while ( != '\0') n = n * 8 + (*p) - '0'; printf("%d\n", n); return 0; }
在这段程序中,缺少了对指针`p`的移动操作,导致程序会一直读取`s[0]`处的字符。同时,`gets`函数已经被废弃,应该使用`fgets`函数来安全地读取字符串。另外,`while`循环中应该加上`p++`语句,以便移动指针。以下是完整的程序:
```
#include <stdio.h>
int main() {
char *p, s[6];
int n;
p = s;
fgets(p, 6, stdin);
n = *p - '0';
while (*p != '\0') {
n = n * 8 + (*p) - '0';
p++;
}
printf("%d\n", n);
return 0;
}
```
这个程序的功能是将一个八进制数的字符串转换为对应的十进制数,并输出结果。程序中使用`fgets`函数读取输入的字符串,避免了`gets`函数可能引起的缓冲区溢出问题。在循环中,每次移动指针`p`,读取下一个字符,并将其转换为数字后加到结果中。最后输出结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![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)
![](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)