补全#include <stdio.h> #include <string.h> void myscat(char str1[], char str2[]); #define N 80 int main() {char s[N], t[N]; gets(s); gets(t); 2 分 ; //调用函数 puts(s); return 0; } void myscat(char str1[], char str2[]) {int i = 0, j; while (str1[i] != '\0') 2 分 ; for(j=0; 2 分 ;i++) { 2 分 ; j 2 分 ; } str1[i] = '\0'; }
时间: 2023-11-27 19:51:37 浏览: 45
补全代码如下:
```c
#include <stdio.h>
#include <string.h>
void myscat(char str1[], char str2[]);
#define N 80
int main() {
char s[N], t[N];
gets(s);
gets(t);
myscat(s, t); //调用函数
puts(s);
return 0;
}
void myscat(char str1[], char str2[]) {
int i = 0, j;
while (str1[i] != '\0')
i++;
for(j=0; str2[j] != '\0';i++) {
str1[i] = str2[j];
j++;
}
str1[i] = '\0';
}
```
这个程序实现了自定义字符串拼接函数 `myscat`,它的功能是将 `str2` 拼接到 `str1` 的末尾。在 `myscat` 函数中,我们首先要找到 `str1` 的末尾,然后逐个将 `str2` 中的字符复制到 `str1` 的末尾,最后加上字符串结束标志 `\0`。在主函数中,我们先读入两个字符串,然后调用 `myscat` 函数,最后输出结果。
相关问题
*定义函数实现n个字符串按字典顺序排序 开头: #include<stdio.h> #include<string.h> void fun (char *str[],int n)
好的,以下是一个实现n个字符串按字典顺序排序的示例代码:
```
#include <stdio.h>
#include <string.h>
void fun(char *str[], int n) {
int i, j;
char *temp;
// 使用冒泡排序算法
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (strcmp(str[j], str[j+1]) > 0) {
// 交换两个字符串的位置
temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
}
int main() {
char *str[] = {"apple", "banana", "orange", "grape", "kiwi"};
int n = sizeof(str) / sizeof(str[0]);
fun(str, n);
printf("排序后的字符串数组:\n");
for (int i = 0; i < n; i++) {
printf("%s ", str[i]);
}
printf("\n");
return 0;
}
```
在这个示例代码中,我们使用了冒泡排序算法对字符串数组进行排序。在排序过程中,我们使用了 `strcmp()` 函数来比较两个字符串的大小关系,并使用指针变量 `temp` 来交换两个字符串在数组中的位置。最后,我们输出排好序的字符串数组。
请注意,这个示例代码中的字符串数组是在程序中直接定义的。如果您需要从用户输入中获取字符串数据,请使用 `scanf()` 或其他输入函数来读取数据,并将它们存储在字符串数组中。
#include<stdio.h> #include<string.h> void main() { char str[10]="Ch\nina"; printf("%d",strlen(str)); }
这段代码的作用是输出字符串 "Ch\nina" 的长度,即 6。但是可以看出,在数组定义时,只分配了 10 个字符的空间,而 "Ch\nina" 长度为 7,因此存在字符串溢出的问题。建议将数组大小定义为至少 8 个字符。同时,main 函数的返回值应该为 int 而不是 void。修改后的代码如下所示:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[8] = "Ch\nina";
printf("%d", strlen(str));
return 0;
}
```