char * s_gets (char * st,int n);这个语句的作用是什么
时间: 2024-04-11 12:30:57 浏览: 13
这个语句的作用是定义了一个名为 `s_gets` 的函数,它接受一个指向字符数组的指针 `st` 和一个整数 `n` 作为参数,并且返回一个指向字符的指针。这个函数通常用于获取用户输入的字符串,并且可以限制字符串的最大长度为 `n-1`。它会读取用户输入的字符串,直到遇到换行符或者达到最大长度。返回的指针指向输入的字符串(包括换行符),或者在输入为空时返回空指针。
相关问题
char * s_gets(char*st,int n)这个语句的作用和含义时什么
这个语句定义了一个函数名为 s_gets,它接受两个参数,分别是一个字符指针 st 和一个整数 n。函数的返回类型是 char* 。s_gets 函数的作用是从输入流中读取字符串,并将其存储在字符指针 st 指向的数组中,最多读取 n-1 个字符。函数会在遇到换行符、文件结束符或达到最大字符数时停止读取,并返回指向存储的字符串的指针。
#include<string.h> #include<stdio.h> //如果t是s的子串,返回在s中起始下标,不是子串返回-1int fun(char *s,char *t) //********beqin***********// //xxxxxxxend***xX*******// int nain(void) 《 char str1[30] ,str2[10]; gets(str1); gets(str2); printf(“%d”,fun(str1,str2)); 6; return
代码存在一些问题:
1. 函数名应该是 main 而不是 nain。
2. 函数 fun 中缺少函数体,应该在 beqin 和 end 之间添加函数体。
3. printf 语句中缺少结束的分号。
4. 函数 fun 的返回值应该是 int 类型而不是 void 类型。
5. gets 函数存在安全问题,应该使用 fgets 替代。
以下是修改后的代码:
```
#include <stdio.h>
#include <string.h>
int fun(char *s, char *t) {
// 在这里添加函数体
return -1; // 如果不是子串返回-1
}
int main() {
char str1[30], str2[10];
fgets(str1, 30, stdin);
fgets(str2, 10, stdin);
printf("%d", fun(str1, str2));
return 0;
}
```