原题链接:C语言训练-字符串正反连接
解题思路: 反转加追加
注意事项: 个人推荐解法3,简单易懂
参考代码:
//1、流氓输出:
#include<stdio.h>
#include<string.h>
int main()
{
int j=0,len;
char str[100],restr[100];
gets(str);
len = strlen(str);
for(int i=len-1;i>=0;i--)
{
restr[j]=str[i];
j++;
}
for(int i=0;i<j;i++)
printf("%c",str[i]);
puts(restr);
return 0;
}
//2、调用c库函数strcat追加函数
#include<stdio.h>
#include<string.h>
int main()
{
int j=0,len;
char str[100],restr[100];
gets(str);
len = strlen(str);
for(int i=len-1;i>=0;i--)
{
restr[j]=str[i];
j++;
}
strcat(str,restr);
puts(str);
return 0;
}
//3、直接追加:
#include<stdio.h>
#include<string.h>
int main()
{
int j=0,len;
char str[100];
gets(str);
len = strlen(str);
for(int i=len-1;i>=0;i--)
{
str[len]=str[i];
len++;
}
puts(str);
return 0;
}
//4、创造一个反转追加函数
#include<stdio.h>
#include<string.h>
void str_cat(char str_sum[],char str[],char restr[])
{
int i,j,n=0;
int len_str = strlen(str);
int len_restr = strlen(restr);
for(i=0;i<len_str;i++)
str_sum[i] = str[i];
for(j=len_str;j<len_str+len_restr;j++)
str_sum[j] = restr[n++];
}
int main()
{
int len;
char str_sum[1000],str[1000],restr[1000];
gets(str);
len = strlen(str);
for(int i=len-1,j=0;i>=0;i--)
{
restr[j]=str[i];
j++;
}
str_cat(str_sum,str,restr);
puts(str_sum);
return 0;
}
//5、调用c库函数单个字符依次输出
#include<stdio.h>
#include<string.h>
int main()
{
int j=0,i=0,n=0,count=0;
char str[1001],restr[1001],a;
gets(str);
for(j=strlen(str)-1;j>=0;j--)
{
restr[n]=str[j];
n++;
}
i=strlen(str);
j=strlen(restr);
for(count=0;count<i;count++)
putchar(str[count]);
for(count=0;count<j;count++)
putchar(restr[count]);
return 0;
} 0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复