C语言实现字符串按单词翻转
C语言 实现 字符串 单词 翻转
2023-09-11 14:21:43 时间
实现字符串按单词翻转
两步翻转法 1.字符串整体翻转 2.每个单词翻转
比如要将I am student.按单词翻转,变为student. am I
#include <stdio.h>
#include <string.h>
void reverse_string1(char* left,char* right)
{
char temp;
while (left < right)
{
temp = *left;
*left = *right;
*right = temp;
left++;
right--;
}
}
int main()
{
char arr1[20] = {0};
printf("请输入字符串:\n");
gets(arr1); //不能使用scanf,因为scanf遇到空格就输入结束了
int len = strlen(arr1);
reverse_string1(arr1,(arr1+len-1));
printf("整体逆序:%s\n", arr1); //.tenduts ma I
char* start = arr1;
while (*start != '\0')
{
char* end = start;
while (*end != ' ' && *end != '\0')
{
end++;
}
reverse_string1(start, end - 1); //end找到空格的首地址,要减一才是一个单词的最后一个字符
//如果是空格,则再找后面的单词,如果是'\0',start = '\0',退出循环
if (*end == ' ')
{
start = end + 1;
}
else
{
start = end;
}
}
printf("每个单词逆序:%s\n", arr1); //student. am I
return 0;
}
相关文章
- IIR数字滤波器的实现(C语言)
- 【C语言入门教程】2.1 数据类型(5种基本数据类型),聚合类型与修饰符
- C语言指针基础
- C语言函数指针的用法
- python和C语言分别实现插入排序
- C语言深入理解通过指针引用多维数组(指针中使用起始地址 元素地址 元素值的区分)
- 遗传算法的C语言实现(二)-----以求解TSP问题为例
- 【算法】C语言实现数组的动态分配
- (C语言)memcpy函数原型的实现
- C语言/C++基础之实现绕线画程序(附源码)
- C语言/C++常见习题问答集锦(六十五) 之彩票幸运星
- ZZNUOJ_用C语言编写程序实现1139:输出最短字符串(附完整源码)
- ZZNUOJ_用C语言编写程序实现1141:进制转换(附完整源码)
- ZZNUOJ_用C语言编写程序实现1168:大整数(指针专题)(附完整源码)
- ZZNUOJ_用C语言编写程序实现1176:查找最大字符串(指针专题)(附完整源码)
- ZZNUOJ_用C语言编写程序实现1204:剔除相关数(附完整源码)
- ZZNUOJ_用C语言编写程序实现1216:简单编码(附完整源码)
- ZZNUOJ_用C语言编写程序实现1245:AC Me(附完整源码)
- ZZNUOJ_用C语言编写程序实现1275:找数(附完整源码)
- ZZNUOJ_用C语言编写程序实现1342:支配值数目(附完整源码)
- ZZNUOJ_用C语言编写程序实现1378:词组缩写(附完整源码)
- ZZNUOJ_用C语言编写程序实现1519:去师院的旅程:规律游戏(附完整源码)
- 栈的实现与操作(C语言实现)
- C语言 第二章 数据类型、变量和输入函数
- C语言功能 --C
- C语言默认參数值的实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言写整数类(Integer)
- 频域抽取FFT(DIF-FFT)的C语言实现