从键盘上输入两个字符串(每个字符串中不包含空格),若不相等,将短的字符串连接到长的字符串的末尾并输出新字符串(若两个字符串长度相等,则后一个字符串连接到前一个字符串末尾);若相等,则输出第一个字符串。
供参考:
#include<stdio.h>
#include<string.h>
#define MAX 512
int main()
{
char str1[MAX], str2[MAX];
int len1, len2;
printf("input string 1 : ");
scanf("%s",str1); //输入字符串1
printf("input string 2 : ");
scanf("%s",str2); // 输入字符串2
len1 = strlen(str1); // 获取字符串1的长度
len2 = strlen(str2); // 获取字符串2的长度
if(len1 < len2){
strcat(str2, str1); // 将短的字符串1接在较长的字符串2的后面
printf("new string : %s\n", str2);
}
else if(len1 > len2){
strcat(str1, str2);
printf("new string : %s\n", str1);
}
else{
printf("first string : %s\n", str1);
}
return 0;
}
#include <stdio.h>
#include <string.h>
#define MAX 100
int main(){
char str1[MAX]={0},str2[MAX]={0};
int len1=0,len2=0;
gets(str1);
gets(str2);
len1=strlen(str1);
len2=strlen(str2);
if(strcmp(str1,str2)==0){
puts(str1);
}
else{
if(len1>=len2){
strcat(str1,str2);
puts(str1);
}
else{
strcat(str2,str1);
puts(str2);
}
}
}
两个字符串相等的情况:
字符串不相等,字符串1长度大于字符串2:
字符串不相等,字符串2长度大于字符串1:
代码:
#include <stdio.h>
#include <string.h>
#define MAXLEN (int)200
int main()
{
char str1[MAXLEN], str2[MAXLEN];
int len1 = 0, len2 = 0;
scanf("%s", str1);
scanf("%s", str2);
if (strcmp(str1, str2) == 0)
{
printf("%s", str1);
}
else
{
len1 = strlen(str1);
len2 = strlen(str2);
if (len1 >= len2)
{
strcat(str1, str2);
printf("%s", str1);
}
else
{
strcat(str2, str1);
printf("%s", str2);
}
}
return 0;
}
望采纳,谢谢!
#include<stdio.h>
#include<string.h>
#define ARR_SIZE 80
int main()
{
char str1[ARR_SIZE];
char str2[ARR_SIZE];
int len1, len2, flag = 1;
gets(str1);
gets(str2);
len1 = strlen(str1);
len2 = strlen(str2);
if (len1 == len2)
{
for (int i = 0; i <= len1; i++) {
if (str1[i] != str2[i])
{
flag = 0;
break;
}
}
if (flag == 1)
printf("%s", str1);
else
printf("%s%s", str1, str2);
}
else if (len1 < len2)
{
printf("%s%s", str2, str1);
}
else
{
printf("%s%s", str1, str2);
}
return 0;
}
编译工具VS,代码如下:
#include <stdio.h>
#include<string.h>
void main()
{
int len1, len2;
char s1[100],s2[100];
gets(s1);
gets(s2);
len1 = strlen(s1);
len2 = strlen(s2);
if (strcmp(s1, s2) == 0)
puts(s1);
else
{
if (len1 >= len2)
{
strcat_s(s1,100, s2);
puts(s1);
}
else if (len1 < len2)
{
strcat_s(s2,100, s1);
puts(s2);
}
}
return 0;
}
如果你用其他编译工具的话,strcat_s(s1,100, s2);换成strcat(s1, s2);即可
把字符依次复制到str3就行
#include<stdio.h>
#include<string.h>
#define max 150
int main()
{
char str1[max],str2[max];
gets(str1);
gets(str2);
int len1=strlen(str1);
int len2=strlen(str2);
char str3[max*2];
if(strcmp(str1,str2)==0)
{
puts(str1);
}
else
{
if(len1<len2)
{
int p=0;
for(int i=0; i<len2; i++)
{
str3[p++]=str2[i];
}
for(int i=0; i<len1; i++)
{
str3[p++]=str1[i];
}
str3[p]='\0';
}
else
{
int p=0;
for(int i=0; i<len1; i++)
{
str3[p++]=str1[i];
}
for(int i=0; i<len2; i++)
{
str3[p++]=str2[i];
}
str3[p]='\0';
}
puts(str3);
}
return 0;
}