原题链接: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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复