如何反转字符串?C语言从入门到入土(进阶篇)(算法篇p3)

简介: 废话不多说,解释都在里面哈。 首先是思路(这里只是两个单词,多个一样的哈):

64.png


然后是代码:

#include<stdio.h>
#include<string.h>
void reverse_my(char* left, char* right)
{
  while (left < right)
  {
    char tmp = *right;
    *right = *left;
    *left = tmp;
    left++;
    right--;
  }
}
int main()
{
  char arr[100] = { 0 };
  gets(arr);
  //反转字符串
  reverse_my(arr, arr + strlen(arr) - 1);
  //反转每个单词
  char* start = arr;
  //因为不止一个单词 所以要while循环往后走
  while (*start)
  {
    char* end = start;
    //中间的一段都是空格分割,最后是字符串结束标志'\0'。
    while (*end != ' ' && *end != '\0')
    {
      end++;
    }
    reverse_my(start, end - 1);
    //最后判断  不是\0就往后走  是\0就 *start == 0 外面的while语句结束循环
    if (*end)
    {
      start = end + 1;
    }
    else
    {
      start = end;
    }
  }
  printf("%s", arr);
  return 0;
}

65.png


因为作者发现算法篇还是一题一题发会让大家知道里面写的是什么会让读者们更清楚自己想不想看,所以之后的算法篇可能就按这样发哈!

最后:感谢你的观看!

         感谢你的支持!

相关文章
|
1月前
|
安全 程序员 C语言
探索C语言库函数:字符串拷贝函数strcpy
探索C语言库函数:字符串拷贝函数strcpy
19 0
|
1月前
|
自然语言处理 算法 搜索推荐
C语言中谈论算法
C语言中谈论算法
10 0
C语言中谈论算法
|
1月前
|
算法 安全 C语言
使用C语言实现DES算法代码
使用C语言实现DES算法代码
|
1月前
|
算法
【优选算法】—— 字符串匹配算法
【优选算法】—— 字符串匹配算法
|
1天前
|
C语言 C++
C语言利用ASCII码表统计字符串每个字符出现的次数
C语言利用ASCII码表统计字符串每个字符出现的次数
5 0
|
3天前
|
存储 C语言
C语言中字符串的引用与数组元素操作
C语言中字符串的引用与数组元素操作
12 0
|
16天前
|
算法
【算法学习--字符串】(不含KMP算法)
【算法学习--字符串】(不含KMP算法)
|
23天前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现1
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
|
23天前
|
C语言
【C语言】第三回 关于字符串,语句和注释的使用2
【C语言】第三回 关于字符串,语句和注释的使用
|
23天前
|
算法 C语言
【算法与数据结构】 C语言实现单链表队列详解2
【算法与数据结构】 C语言实现单链表队列详解