将两个字符串连起来,不用strcat函数,新手版

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
	int i,m=0,n=0;
	char c1, c2;
	char str1[80], str2[20];
	printf("Input str1:\n");
	gets_s(str1);
	printf("The str1 is:\n");
	for (i = 0; (c1 = str1[i]) != '\0'; i++)
	{
		m++;
		printf("%c", str1[i]);	
	}
	printf("\n");
	printf("m=%d\n", m);
	printf("Input str2:\n");
	gets_s(str2);
	printf("The str2 is:\n");
	for (i = 0; (c2 = str2[i]) != '\0'; i++)
	{
		n++;
		printf("%c", str2[i]);	
	}
	printf("\n");
	printf("n=%d\n",n);
	if (n <= 80 - (m + 1))
	{
		printf("Now we connect str1 and str2:\n");
		for (i = 0; i < m + n; i++)
		{
			c1 = str1[i];
			c2 = str2[i];
			str1[m + i] = c2;
			printf("%c", str1[i]);
		}
	}
	else
		printf("There is an error in your input,please try again!");
	printf("\n");
	return 0;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用循环遍历两个字符串,将第一个字符串的每个字符依次存入一个新的字符串中,然后再将第二个字符串的每个字符依次存入新的字符串中。最终得到的新字符串即为两个字符串连接结果。具体实现代码如下: ```python def concat_str(str1, str2): new_str = '' for ch in str1: new_str += ch for ch in str2: new_str += ch return new_str ``` ```java public static String concatStr(String str1, String str2) { StringBuilder sb = new StringBuilder(); for (int i = ; i < str1.length(); i++) { sb.append(str1.charAt(i)); } for (int i = ; i < str2.length(); i++) { sb.append(str2.charAt(i)); } return sb.toString(); } ``` ```c++ #include <iostream> using namespace std; string concat_str(string str1, string str2) { string new_str = ""; for (int i = ; i < str1.length(); i++) { new_str += str1[i]; } for (int i = ; i < str2.length(); i++) { new_str += str2[i]; } return new_str; } int main() { string str1 = "hello"; string str2 = "world"; string result = concat_str(str1, str2); cout << result << endl; // 输出 "helloworld" return ; } ``` ### 回答2: 字符串连接操作是在编程中经常用到的操作,通常情况下我们可以通过strcat函数来实现字符串连接。但是有时候,我们需要自己手动实现字符串连接,并且不使用strcat函数。下面我将详细讲解一下这个问题的解决方案。 实现字符串连接,最基本的操作就是将一个字符串中的每个字符都复制到目标字符串中。因此,我们可以通过for循环来实现字符串连接。具体实现方法可以按照以下步骤: 1. 先计算出目标字符串的长度。 我们可以利用strlen函数来计算原字符串的长度,并且根据字符串连接的方法,可以得出目标字符串的长度,即两个字符串长度的和。 2. 为目标字符串申请空间。 根据目标字符串的长度,我们可以使用malloc函数来为目标字符串申请空间。 3. 复制原字符串到目标字符串中。 我们利用for循环来遍历原字符串中的每个字符,并且将其依次复制到目标字符串中。 4. 复制第二个字符串到目标字符串中 使用指针运算,将第二个字符串中的字符也复制到目标字符串中。 5. 添加结尾标识符’\0’ 将最后一个位置添加上结尾标识符,即'0',使目标字符串具有正常存储形式。 6. 输出结果 最后,我们可以输出字符串连接的结果。 以上就是基于for循环手动实现字符串连接的步骤,这个方法虽然较为繁琐,但也是十分实用的。通过这种方法实现字符串连接可以提高程序的灵活性,同时也有利于理解字符串的本质。 ### 回答3: 字符串连接是日常开发中经常遇到的问题,常用的方法是使用C语言中的strcat函数。不过,如果不想使用strcat函数,也有其他的方法可以实现字符串连接。 第一种方法是使用for循环遍历两个字符串,将第一个字符串的字符逐一添加到新的字符串中,然后再将第二个字符串的字符也逐一添加到新的字符串中。具体的实现过程如下所示: ``` #include <stdio.h> int main() { char s1[] = "abc"; char s2[] = "def"; char s3[7]; // 新的字符串 int i=0, j=0; // 复制第一个字符串 while (s1[i]) { s3[i] = s1[i]; i++; } // 复制第二个字符串 while (s2[j]) { s3[i+j] = s2[j]; j++; } s3[i+j] = '\0'; // 添加字符串结束符 printf("连接后的字符串为: %s\n", s3); return 0; } ``` 第二种方法是使用指针。将新的字符串的首地址指向第一个字符串,然后以此向后遍历,直到遇到第一个字符串的结束符,再将指针指向第二个字符串的首地址,重复遍历,直到遇到第二个字符串的结束符。具体的实现过程如下所示: ``` #include <stdio.h> int main() { char s1[] = "abc"; char s2[] = "def"; char s3[7]; // 新的字符串 char *p = s3; // 指针指向s3的首地址 // 复制第一个字符串 while (*p++ = *s1++) {} // 注意这里的++是先执行,后赋值(从左到右),遇到\0跳出循环 // 复制第二个字符串 while (*p++ = *s2++) {} // 同上 printf("连接后的字符串为: %s\n", s3); return 0; } ``` 以上是两种实现字符串连接的方法,大家可以根据项目需求选择其中的一种方法进行使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值