邢台哪儿专业做网站,怎样做网站反链,游戏网游戏平台,服务器是什么设备文章目录 1.描述2.解题思路3.具体代码 1.描述
输入描述: 将一个字符串str的内容颠倒过来#xff0c;并输出。可以有空格 数据范围#xff1a;1≤#x1d459;#x1d452;#x1d45b;(#x1d460;#x1d461;#x1d45f;)≤10000 1≤len(str)≤10000 输出描述并输出。可以有空格 数据范围1≤()≤10000 1≤len(str)≤10000 输出描述 输出逆序的字符串 示例图 2.解题思路
首先我们需要一个接收函数用来接收字符串这里的字符串应该用字符数组存储。
逆序输出就是将数组元素倒过来输出。
我们可以直接通过逆序的数组下标输出逆序字符串。
也可以将数组下标元素逆序交换输出逆序字符串。 3.具体代码
我找到了两个方法
代码1
#include stdio.h
#include string.h
int main()
{int i;char s[10000];gets(s);for(istrlen(s)-1;i0;i--){ putchar(s[i]);}return 0;
}打印 代码讲解
定义整型变量i和字符数组s。通过gets(s)来接收输入的语句直到遇到换行符。通过一个for循环来逆序打印输入的语句。 代码2
这个代码看起来复杂点。
void Reverse(char* str)
{char* left str;// 定义左指针left初始指向字符串的起始位置char* right str strlen(str)-1;// 定义右指针right初始指向字符串的最后一个字符位置while(left right)// 当左指针小于右指针时执行循环体{char temp *left;// 临时保存左指针指向的字符*left *right; // 将右指针指向的字符赋值给左指针指向的位置*right temp; // 将临时保存的左指针字符赋值给右指针指向的位left;// 左指针向后移动一位--right;// 右指针向前移动一位}
}int main()
{char str[10000] {0};while(gets(str)){Reverse(str);printf(%s\n, str);memset(str, 0, sizeof(str)/sizeof(str[0]));}return 0;
}打印 代码讲解 进入main函数先定义一个字符数组str。 进入while循环通过gets(str)读取用户输入直到遇到换行符。 将字符数组arr首元素地址传递给Reverse()函数。 进入Reverse()函数定义左指针left初始指向字符串的起始位置 定义右指针right初始指向字符串的最后一个字符位置 进入while循环当左指针小于右指针时执行循环体 char temp *left;// 临时保存左指针指向的字符
*left *right; // 将右指针指向的字符赋值给左指针指向的位置
*right temp; // 将临时保存的左指针字符赋值给右指针指向的位
left;// 左指针向后移动一位
--right;// 右指针向前移动一位简单来说就是把最左边和最右边的元素位置互换。 Reverse()函数执行完后返回main函数打印arr数组的内容 使用memset函数将str数组清零为下一次读取做准备。 程序会一直循环知道用户不输入为止。 简单来说就是把最左边和最右边的元素位置互换。 Reverse()函数执行完后返回main函数打印arr数组的内容 使用memset函数将str数组清零为下一次读取做准备。 程序会一直循环知道用户不输入为止。