用c语言,使用字符串输入输出函数gets(),puts()实现输入输出自己最喜欢的命言
时间: 2024-10-23 22:09:25 浏览: 17
在C语言中,`gets()` 和 `puts()` 函数主要用于字符串的输入和输出。但是请注意,由于安全性的原因,`gets()` 函数已经被弃用,推荐使用更安全的 `fgets()` 替代。下面是一个示例,演示如何使用这两个函数输入并显示你最喜欢的名言:
```c
#include <stdio.h>
#include <string.h> // 引入字符串库,因为gets需要它
#define MAX_LINE_LENGTH 50 // 定义最大输入字符串长度
int main() {
char favorite_saying[MAX_LINE_LENGTH]; // 存储名言的字符数组
printf("请输入你最喜欢的一条名言:"); // 输出提示信息
fgets(favorite_saying, MAX_LINE_LENGTH, stdin); // 使用fgets获取用户输入,防止缓冲区溢出
// 移除fgets可能会添加的换行符
if (favorite_saying[strlen(favorite_saying)-1] == '\n') {
favorite_saying[strlen(favorite_saying)-1] = '\0';
}
puts(favorite_saying); // 输出名言
printf("\n这是你输入的名言:\n");
return 0;
}
```
当你运行此程序时,会提示你输入一条名言,然后显示你输入的内容。
相关问题
写一个C语言程序,从键盘输入两个字符串存放在字符数组s1和s2中,数组s1和s2大小均为40。把s1和s2连接在一起构成一个字符串存放在字符数组s3中,最后输出s3。不要使用strcat和strcpy函数。用函数gets输入字符串,用函数puts输出字符串。
好的,我可以帮您解决这个问题。以下是程序代码:
```
#include <stdio.h>
void mystrcat(char s1[], char s2[], char s3[]) {
int i, j;
for (i = 0; s1[i] != '\0'; i++) {
s3[i] = s1[i];
}
for (j = 0; s2[j] != '\0'; j++) {
s3[i+j] = s2[j];
}
s3[i+j] = '\0';
}
int main() {
char s1[40], s2[40], s3[80];
printf("请输入第一个字符串s1:");
gets(s1);
printf("请输入第二个字符串s2:");
gets(s2);
mystrcat(s1, s2, s3);
printf("连接后的字符串s3为:");
puts(s3);
return 0;
}
```
通过自己实现一个mystrcat函数来实现字符串的拼接,该函数接受三个参数:两个源字符串s1和s2和一个目标字符串s3,将s1和s2中的字符依次复制到s3中,最后在s3末尾添加上字符串结束标志'\0'。
在主函数中,首先使用gets函数从键盘输入两个字符串s1和s2,然后调用自己编写的mystrcat函数将两个字符串连接起来存放在s3中,并最后使用puts函数输出字符串s3。
希望这个程序对您有所帮助!
用C语言来设计,不用fgets用 gets 函数输入字将字符串s1和字符串s2,要求将s2字符串反向连接到s1字符串末端组成一个新字符串s1,使用 puts 输出字符串s1。要求用指针书写程序
好的,我来回答你的问题。
首先,我们需要用指针来定义字符串s1和s2,代码如下:
```c
char *s1, *s2;
```
然后,我们使用`gets`函数来输入字符串s1和s2,代码如下:
```c
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
```
接下来,我们需要找到字符串s1的末尾,代码如下:
```c
while (*s1 != '\0') {
s1++;
}
```
然后,我们反向连接字符串s2到s1的末尾,代码如下:
```c
while (*s2 != '\0') {
*s1 = *s2;
s1++;
s2++;
}
```
最后,我们在新的字符串s1末尾添加一个空字符,表示字符串的结束,代码如下:
```c
*s1 = '\0';
```
最后,我们使用`puts`函数输出字符串s1,代码如下:
```c
puts(s1);
```
完整的代码示例如下:
```c
#include <stdio.h>
int main() {
char *s1, *s2;
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
while (*s1 != '\0') {
s1++;
}
while (*s2 != '\0') {
*s1 = *s2;
s1++;
s2++;
}
*s1 = '\0';
puts(s1);
return 0;
}
```
注意,使用`gets`函数存在安全隐患,建议使用更安全的函数`fgets`来输入字符串。
阅读全文