从键盘上任意输入一个字符串存放到a数组中(可以用gets函数输入字符串)。
时间: 2024-10-22 20:16:43 浏览: 30
当你想要从键盘上获取用户输入并将其存储到字符数组中,你可以使用C语言的标准库函数`scanf()`配合数组来实现。这里是一个简单的示例:
```c
#include <stdio.h>
#define SIZE 50 // 假设我们创建一个大小为50的数组
int main() {
char a[SIZE]; // 创建一个字符数组a
printf("请输入一个字符串: ");
fgets(a, SIZE, stdin); // 使用fgets读取用户的输入,注意最后需要添加'\0'字符表示字符串结束
// 确保fgets读入了换行符,并移除它
if (a[strlen(a) - 1] == '\n') {
a[strlen(a) - 1] = '\0'; // 删除换行符
}
printf("你输入的字符串是: %s\n", a); // 输出用户输入的字符串
return 0;
}
```
在这个例子中,程序会提示用户输入字符串,然后使用`fgets()`函数将输入的字符串及其末尾的换行符一起存储到`a`数组中。如果输入的字符串超过数组长度,则可能会导致溢出,因此通常会在实际项目中进行检查。
相关问题
写一个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。
希望这个程序对您有所帮助!
请完善程序,实现以下程序功能:以下程序模拟字符串处理函数strcat()的功能,对两个字符串进行连接。首先从键盘上输入两个字符串并保存到数组s1(最多80个字符)和s2(最多80个字符)中,然后通过对字符串s2中字符逐个进行传递的方式,将字符串s2中的字符全部顺序复制到数组s1中原有字符的后面,最后输出s1的内容。 输入样例: I love you! China! 输出样例: I love you!China! #include <stdio.h> int main(void) {char s1[161],s2[81]; int i,j; gets(s1); //输入字符串并存入数组s1中 gets(s2); //输入字符串并存入数组s2中 i=0; while( ) //在数组s1中,找到字符串的末尾 i++; for(j= ; ;j++) //将数组s2中的字符串,复制到数组s1中的字符串之后 {s1[i]=s2[j]; ; //调整数组s1中元素下标的值 } ; puts(s1); //输出连接之后的字符串 return 0; }
完善后的程序如下:
```c
#include <stdio.h>
int main(void) {
char s1[161], s2[81];
int i = 0, j = 0;
gets(s1);
gets(s2);
while (s1[i] != '\0') { // 找到字符串s1的末尾
i++;
}
while (s2[j] != '\0') { // 将字符串s2复制到字符串s1的末尾
s1[i] = s2[j];
i++;
j++;
}
s1[i] = '\0'; // 字符串结尾符
puts(s1);
return 0;
}
```
在上述程序中,我们通过两个while循环找到了字符串s1的末尾,然后通过一个while循环和两个计数器i和j,将字符串s2复制到字符串s1的末尾,并且在最后加上了字符串结尾符。最后,我们输出了连接后的字符串s1。
阅读全文