C语言学习历程——Training04字符串训练04
来源:互联网 发布:2016象棋软件排名 编辑:程序博客网 时间:2024/06/04 19:02
4. 题目:编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”;
及将句子中的单词位置倒置,而不改变单词内部结构.
分析:可以先把字符串整体倒置,再把每个单词再倒置,就实现了功能。
下面是代码实现:
/************************************************************************
题目: 编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”;
及将句子中的单词位置倒置,而不改变单词内部结构.
************************************************************************/
#include <stdio.h>
int mystrlen(const char *str)
{
int length = 0;
while (*str++)
{
length++;
}
return length;
}
void RevStr(char *str, int len) //字符串倒置函数
{
int i = 0;
char temp = 0;
for (i = 0; i < len / 2; i++)
{
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
void RevSen(char *str, int len)
{
int count = 0;
RevStr(str, len); //先整体倒置
printf ("str = %s\n", str);
while (*str)
{
if (*str == ' ')
{
RevStr(str - count, count); //再将每个单词倒置
str++;
count = 0;
}
count++;
str++;
}
RevStr(str - count, count); //处理最后一个单词
}
int main()
{
char str[] = "I am from shanghai";
int len = mystrlen(str);
RevSen(str, len);
printf ("The result is %s\n", str);
return 0;
}
题目: 编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”;
及将句子中的单词位置倒置,而不改变单词内部结构.
************************************************************************/
#include <stdio.h>
int mystrlen(const char *str)
{
int length = 0;
while (*str++)
{
length++;
}
return length;
}
void RevStr(char *str, int len) //字符串倒置函数
{
int i = 0;
char temp = 0;
for (i = 0; i < len / 2; i++)
{
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
void RevSen(char *str, int len)
{
int count = 0;
RevStr(str, len); //先整体倒置
printf ("str = %s\n", str);
while (*str)
{
if (*str == ' ')
{
RevStr(str - count, count); //再将每个单词倒置
str++;
count = 0;
}
count++;
str++;
}
RevStr(str - count, count); //处理最后一个单词
}
int main()
{
char str[] = "I am from shanghai";
int len = mystrlen(str);
RevSen(str, len);
printf ("The result is %s\n", str);
return 0;
}
0 0
- C语言学习历程——Training04字符串训练04
- C语言学习历程——Training04字符串训练01
- C语言学习历程——Training04字符串训练02
- C语言学习历程——Training04字符串训练03
- C语言学习历程——Training04字符串训练05
- C语言学习历程——字符串训练04
- C语言学习历程——字符串训练01
- C语言学习历程——字符串训练02
- C语言学习历程——字符串训练03
- C语言学习历程——Training01整数算法训练04
- C语言学习历程——Traing01整数算法训练01
- C语言学习历程——Training01整数算法训练02
- C语言学习历程——Training01整数算法训练03
- C语言学习历程——Training01整数算法训练05
- c语言练习题——字符串训练
- C语言学习历程——Training02位运算04
- C语言学习历程——Training02位运算01
- C语言学习历程——Training02位运算02
- mysql触发器
- 你只是看起来很努力
- 欢迎使用CSDN-markdown编辑器
- 算法小题(1)python递归小练习
- zoj 3785 打表找规律
- C语言学习历程——Training04字符串训练04
- Hibernate
- spring的ioc操作
- n皇后方案总数的位运算优化
- springMVC-映射处理器(下)
- linux下源码安装Apache
- MySQL中my.ini的位置
- 其它
- 关于 if 语句的 对齐