【蓝蓝计算机考研算法】-day06-字符串反转

69 阅读1分钟

9、字符串反转

接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)

输入描述 :

输入一行,为一个只包含小写字母的字符串。

输出描述 :

输出该字符串反转后的字符串。

输入:abcd
输出:dcba

思路

  • 判断输入的字符串是否是小写
  • 若是小写,获取字符串的长度,从末尾开始输出.
  • 若有大写,提示只能输入小写

具体实现

#include<stdio.h>
#include<string.h.>

#define MAX 1001//宏定义 最大值为MAX不超过1001
int main()
{
    char ch[MAX];
    printf("请输入小写字符串:");
    scanf_s("%s", ch, MAX);
    int len = strlen(ch);
    printf("反转后的字符串为:");
        for (int i = len; i >=0; i--) {
        if (ch[i] >= 'A' && ch[i] <= 'Z') {//判断是否有大写字母
            printf("你输入了有大写字母,不符合。");
            return 0;
        }
        else {
            printf("%c", ch[i]);
        }      
    }

运行结果

image.png

时间复杂度(这块写的可能有错)

时间:与输入的字符串长度有关,O(n)————n字符串长度 空间:存储字符串的数组,所以为O(m)---m为字符数组的容量

小结

今天是截至目前写的最顺利的一天,算法虽然不是最优的,但是好歹用最笨的办法实现了功能。