社区
C语言
帖子详情
如何最简单的编程去掉字符串中多余的 /
joyself
2005-02-19 08:58:56
譬如 /home/hello///test//end
将该字符串变为 /home/hello/test/end
即超过一个的'/'只保留一个
大家试试
...全文
323
15
打赏
收藏
如何最简单的编程去掉字符串中多余的 /
譬如 /home/hello///test//end 将该字符串变为 /home/hello/test/end 即超过一个的'/'只保留一个 大家试试
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yjh1982
2005-02-21
打赏
举报
回复
更正:应该是std::unique(str,str+strlen(str)+1);
std::unique的实现速度很快,只要一层循环
joyself
2005-02-21
打赏
举报
回复
再来加一个,荷荷
#include <stdio.h>
int main(int argc, char *argv[])
{
char *p;
char *dst;
char *q;
dst = p = argv[1];
for (; *p; p++)
{
for (q = p + 1; (*q == *p) && (*p == '/'); q++);
strcpy(p + 1, q);
}
return dst;
}
Leaveye
2005-02-21
打赏
举报
回复
sigh。看到的晚就是吃亏。
sutra(经典答案 /*短最美 小最优*/) 的实现就是我想到的最简单的方法。
yjh1982
2005-02-21
打赏
举报
回复
#include<algorithm>
char *str= "/home/hello///test//end";
std::unique(str,str+strlen(str));
knocker_k
2005-02-21
打赏
举报
回复
char *str= "/home/hello///test//end";
char *ptr0,*ptr1;
ptr0 = ptr1 = str+1;
while( *ptr0 )
{
if( *ptr0 == '/'&&*(ptr1-1) == '/' ) ptr0++;
else
*ptr1++ = *ptr0++;
}
*ptr1 = '\0';
puts(str);
sutra
2005-02-21
打赏
举报
回复
void fun( char *str, char ch )
{
char *p, c ;
p = str ;
while( c = *p++ = *str++ )
while( c == ch && *str == ch ) ++str ;
} ;
int main()
{
char str[] = "/home/hello///test//end";
fun( str, '/' ) ;
puts( str ) ;
return 0 ;
}
suyouxin
2005-02-21
打赏
举报
回复
#include "stdio.h"
void main()
{
char a[]="/home/hello///test//end";
char *p = a;
char *b = a;
while (*p) {
if (p[0] == '/' && p[1] == '/') {
p++;
continue;
}
*b++ = *p++;
}
*b = '\0';
printf("%s\r\n", a);
}
测试过了
ineedu_cn
2005-02-20
打赏
举报
回复
#include <stdio.h>
#include <string.h>
main()
{
char str1[100];
char*str2;
char*str2=(char*)malloc(100);
scanf("%s",str2);
bool a=false; //当字符为'/'时true,其余为false
int i=0,j=0;
//读取字符首先判断是否为'/',否则复制到str1中
//是则判断前一个是否为'/',否则复制到str1中,是则读取下一个字符
while(str2[j]!='\0'){
if(str2[j]!='/'){
str1[i++]=str2[j++];
a=false;
continue;
}
if(!a){
str1[i++]=str2[j++];
a=true;
continue;
}
j++;
}
str1[i]='\0';
printf("%s",str1);
return;
}
以上代码是我凭流程图写的,由于手里没有编译器,还没有调试过。
ineedu_cn
2005-02-20
打赏
举报
回复
#include <stdio.h>
#include <string.h>
main()
{
char str1[100];
char*str2;
char*str2=(char*)malloc(100);
scanf("%s",str2);
bool a=false; //当字符为'/'时true,其余为false
int i=0,j=0;
//读取字符首先判断是否为'/',否则复制到str1中
//是则判断前一个是否为'/',否则复制到str1中,是则读取下一个字符
while(str2[j]!='\0'){
if(str2[j]!='/'){
str1[i++]=str[j++];
a=false;
continue;
}
if(!a){
str1[i++]=str[j++];
a=true;
continue;
}
j++;
}
str1[i]='\0';
printf("%s",str1);
return;
}
tttx
2005-02-20
打赏
举报
回复
改一下。。。。。。。
char a[]="/home/hello///test//end";
char b[sizeof(a)];
char *p=b;
for (i=0;i<sizeof(a);)
{
*p++=a[i];
if(a[i]!='/')
{i++;
continue;
}
while(a[++i]=='/');
}
wuzhihong
2005-02-19
打赏
举报
回复
#include <iostream>
using namespace std;
int main()
{
char ch;
int slash_cnt = 0;
while(cin.get( ch ))
{
if(ch=='/')
slash_cnt++;
else
slash_cnt=0;
if(slash_cnt<=1)
{
cout.put( ch );
}
}
return 0;
}
tttx
2005-02-19
打赏
举报
回复
char a[]="/home/hello///test//end";
char b[sizeof(a)];
char *p=b;
for (i=0;i<sizeof(a);i++)
{
*p++=a[i];
do{}while(a[i++]=='/');
}
Dong
2005-02-19
打赏
举报
回复
的确使用C++做比较容易
Dong
2005-02-19
打赏
举报
回复
#include <stdio.h>
#include <string.h>
int main()
{
char s[40]="/home/hello///test//end";
char *c;
while(c = strstr(s,"//"))
{
s[c-s]=0;
sprintf(s,"%s%s", s,++c);
}
printf("%s\n",s);
return 0;
}
nodummy
2005-02-19
打赏
举报
回复
比较简单的方法可以使用两层的循环,一个进行迭代,一个用于去除多余的/
另外的方法可以使用std里面的算法来进行这些工作,譬如unique之类的
#include <iostream>
#include <algorithm>
using namespace std;
main()
{
char ptr[]="/home/hello///test//end";
unique(ptr,ptr+sizeof(ptr));
cout<<ptr;
}
拼接
字符串
时,
去掉
最后一个
多余
的逗号
1、使用subString的方法去删除 private static void method02() { String[] str = { "3", "4", "5" }; StringBuilder sb = new StringBuilder(); if (str != null && str.length >...
MFC
中
去掉
字符串
/数据后面
多余
0的方法
最近在VC6.0
中
用MFC实现一个
简单
计算器的功能,到后面显示的时候,显示的数据后面总有0,比如,12.000000,或者12.023000。显示是用
字符串
来显示的,后面总会有几个0,为了美观和需要,我们需要把后面的0
去掉
:我把子函数贴出来,如下: int i, j, m; int count = 0;//用于计算
字符串
中
最后一个非0字符后面的0个数 m_SResult.Format("%f"...
java
字符串
去掉
最后一个逗号_java拼接
字符串
时
去掉
最后一个
多余
逗号的方法
java拼接
字符串
时
去掉
最后一个
多余
逗号的方法本文实例讲述了java拼接
字符串
时
去掉
最后一个
多余
逗号的方法。分享给大家供大家参考。具体分析如下:先看下面这段代码:for (int t = 0; t < memberLen; t++) {memTemp = stafferMap.get(strMember[t]);if(memTemp != null){memberNames += memTe...
c++
字符串
去掉
首尾空格_C/C++
去掉
字符串
首尾空格函数
C/C++
去掉
字符串
首尾空格函数//
去掉
字符串
首(左)空格函数char* ltrim_lc(char* s){char* s_s=new char[strlen(s)+1];strcpy(s_s,s);char* s_rev=strrev(s_s);s_rev=rtrim_lc(s_rev);char* d_s=strrev(s_rev);return d_s;}//
去掉
字符串
尾(右)空格函数c...
Java拼接
字符串
时,
去掉
最后一个
多余
的逗号
当我们遍历拼接
字符串
的时候,最后会多出一个我们添加的字符(比如逗号) 可使用如下三种方法
去掉
最后
多余
的符号 String str[] = { "hello", "beijing", "world", "shenzhen" }; StringBuffer buf = new StringBuffer(); for (int i = 0; i < str.length; i++) {
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章