//思路:先把字母全部存放在ch中,之后在进行遍历,把字母反向放回去
char * reverseOnlyLetters(char * S){
int i;
int j = 0;
//求出S的长度
int len = strlen(S);
char* ch = (char*)malloc(strlen(S)+1);
for(i = 0;
i < len;
i++)
{
//判定,只将字母放进去
if(S[i]>='A'&&S[i]<='Z' || S[i]>='a'&&S[i]<='z')
{
ch[j] = S[i];
j++;
//S[i]置为空,方便之后遍历
S[i] = ' ';
}
}
【仅仅反转字母(给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。)】//再次遍历,寻找为空的位置,然后把字母放回去
for(i = 0;
i < len;
i++)
{
if(S[i] == ' ')
{
S[i] = ch[j-1];
j--;
}
}
return S;
}
推荐阅读
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- 【C】题目|【C语言】题集 of ⑥
- 单片机|自学单片机好找工作吗(会单片机能找什么工作?)
- 单片机|keil把源代码生成lib的方法
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- c语言|C语言初期学习遇到的特殊点 【三子棋详解】【初学者福音,详细总结,复习能手】
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- 个人理解|【C语言基础之类型转换】
- c语言|【C语言】自定义类型 结构体 枚举 联合
- 学习分享|【C语言函数基础】