点击上方“C语言中文社区”,选择“设为星标★”
技术干货第一时间送达!
往期回顾:
C语言实例第01期,十进制数转换二进制数
C语言实例第02期,判断某一年是否为闰年
C语言实例第03期,使用*打印平行四边形
C语言实例第04期,在控制台打印出著名的杨辉三角
C语言实例第05期,实现投票统计功能
C语言实例第06期:交换数组中最大数和最小数的位置
实例代码
//
// Created by 冲哥 on 2020/9/14.
//实现功能:输入一个字符串,然后将该字符串反向输出
//
#include "stdio.h"
#include "string.h"
#define N 50
void convert_str(char str[N]);
void convert_str(char str[N]){
int j;
char temp;
for (int i = 0; i strlen(str)/2; i++) {
j = strlen(str) - 1;
temp = str[i];
str[i] = str[j - i];
str[j - i] = temp;
}
printf("反向输出:%s", str);
}
int main(){
char str[N];
printf("请输入字符串:\n");
gets_s(str, N);
printf("输入的字符串为:%s\n", str);
convert_str(str);
}
运行结果:
程序分析
注意:实例中有这样一个语句j = strlen(str) - 1;
这里j为什么是j = strlen(str) - 1;
而不是strlen(str)
呢?原因如下:如果数组s中含有10个元素,那么它的长度为10,而s的数组下标从0开始那么下标的最大值为9,j这里是代表数组下标,所以开始时的最大值应是strlen(str)-1
也就是9。
应该很好理解,如有疑问,随时后台留言或者添加我们的交流群
「C语言交流群:回台回复【C语言】」
9.15
好文!点个好看!