C语言编写程序,输入两个字符串,并将其中较小的字符串连接到较大的字符串后面。(不能使用strcmp、strlen、strcat等库函数)
时间: 2024-11-18 17:19:28 浏览: 76
在C语言中,我们可以手动比较字符串长度并逐字符比较来确定较小的字符串,然后将其复制到较大的字符串后面。下面是一个简单的示例,假设我们有两个指针分别指向两个字符串:
```c
#include <stdio.h>
#include <stdlib.h>
// 比较字符串大小的辅助函数
int compare_strings(char *str1, char *str2) {
int len1 = 0;
int len2 = 0;
// 计算每个字符串的长度
while (*str1 != '\0') {
len1++;
str1++;
}
while (*str2 != '\0') {
len2++;
str2++;
}
if (len1 < len2)
return -1; // str1 较小
else if (len1 > len2)
return 1; // str2 较大
else
return 0; // 长度相等
}
// 将较小的字符串连接到较大的字符串后面
void append_smaller_string(char *big_str, char *small_str) {
int small_len, i;
small_len = strlen(small_str); // 获取小字符串长度(仅作参考,因为我们不使用库函数)
// 使用循环遍历较小的字符串,然后将其内容逐个添加到较大字符串的末尾
for (i = 0; i < small_len; i++) {
big_str[len1 + i] = small_str[i];
}
big_str[len1 + i] = '\0'; // 添加结束符
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin);
str1[strlen(str1)-1] = '\0'; // 去除换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2)-1] = '\0'; // 去除换行符
int comparison_result = compare_strings(str1, str2);
if (comparison_result == -1) {
append_smaller_string(str1, str2);
} else if (comparison_result == 1) {
append_smaller_string(str2, str1);
}
printf("连接后的结果: %s", str1);
return 0;
}
阅读全文
相关推荐

















