[算法练习]将字符串中*提前&&删除指定字符
来源:互联网 发布:哪个软件可以看素媛 编辑:程序博客网 时间:2024/06/06 06:51
//思路:只要不是星号的都交给写指针写入,忽略*
//问题可以转换为:删除字符串中的特定字符 只不过这个是从尾巴开始
#include <stdio.h>size_t _strlen(char *str){return (NULL == str || *str =='\0') ? 0 : _strlen(str+1) + 1;}//思路:只要不是星号的都交给写指针写入,忽略*//问题可以转换为:删除字符串中的特定字符 只不过这个是从尾巴开始char* str_TiQian(char *str){if(NULL == str || *str == '\0')return NULL;int len = 0;int Dst = 0;int count = 0;len = Dst = _strlen(str) - 1;do{if(str[len] != '*')str[Dst--] = str[len];//这里是先执行str[dst] = str[len] 然后才dst-1;elsecount ++;} while (len--);for (int i = 0; i < count; i++){str[i] = '*';}printf("%s\n",str);return str;}//思路同上char* str_TiQian_Ex(char* str){if(NULL == str || '\0' == *str)return NULL;char *pRead = 0;char *pWrite = 0;pRead = pWrite = str + _strlen(str) - 1;do{if(*pRead != '*')*pWrite-- = *pRead;} while (pRead-- != str);//先比较再赋值while (pRead <= pWrite){*pRead++ = '*';//先执行后面的在执行加操作//相当于//*pRead = '0';//pRead ++;}printf("%s\n",str);return str;}char* Del_speciol_ch(char *str, char ch){if(NULL == str || *str == '\0')return NULL;char *pRead = 0;char *pWrite = 0;pRead = pWrite = str;do{if(*pRead != ch)*pWrite++ = *pRead;} while (*pRead++ != '\0');printf("%s\n",str);return str;}char* Del_speciol_ch_Ex(char *str, char ch){if(NULL == str || *str == '\0')return NULL;int sour = 0;int dst = 0;do{if(str[sour] != ch)str[dst++] = str[sour];} while (str[sour++] != '\0');printf("%s\n",str);return str;}void main(){char str0[260] = "hel*lo w*or*ld";printf("%s\n",str0);str_TiQian(str0);char str1[260] = "***hel*l**o w*o**r*ld**";printf("\n%s\n",str1);str_TiQian(str1);char str3[260] = "***hel*l**o w*o**r*ld**";printf("\n%s\n",str3);str_TiQian_Ex(str3);char str4[260] = "hel***lo w*or*ld";printf("\n%s\n",str4);str_TiQian_Ex(str4);printf("\n----------\nDel * \n");char str5[260] = "hel***lo w*or*ld";printf("\n%s\n",str5);Del_speciol_ch(str5,'*');Del_speciol_ch(str3,'*');char str6[260] = "hel***lo w*or*ld";char str7[260] = "***hel*l**o w*o**r*ld**";printf("\n%s\n",str6);Del_speciol_ch_Ex(str6,'*');printf("\n%s\n",str7);Del_speciol_ch_Ex(str7,'*');getchar();}
0 0
- [算法练习]将字符串中*提前&&删除指定字符
- [算法练习]字符.字符串删除,字符提前
- 字符串删除指定字符算法
- 字符串中删除指定字符
- C++实现删除字符串中所有指定字符算法
- 从指定字符串中删除指定字符
- 从字符串中删除指定字符
- 删除字符串中所有指定的字符
- 删除字符串中任意指定的字符
- 在字符串中删除指定字符
- 字符串中删除指定的字符
- c++在字符中删除指定字符串
- 在字符串中删除指定字符
- c++ 华为练习 四 删除字符串中的指定字符
- 删除字符串指定字符
- 字符串删除指定字符
- Java中如何从一个字符串中删除指定字符
- Java中如何从一个字符串中删除指定字符
- 跟我一起学习MySQL技术内幕(第五版):(第二章学习日记10)
- ZOJ 3947Very Happy Great BG
- HDU1978howmanyways
- 【C语言的递归调用】汉罗塔问题心得
- iOS开发之UIWebView使用总结
- [算法练习]将字符串中*提前&&删除指定字符
- MySQL QA 入门序列
- DSP、SSP、RTB 是怎样的一个过程
- 练习三1003
- 新建文件夹改成系统时间
- VIM学习(2)
- react网络数据获取
- light oj1005 Rooks
- 1009