c++ 函数 删除字符串指定位置的字符

2024-12-11 20:50:48
推荐回答(4个)
回答1:

有那么麻烦么 C++ 用string类 里面就有这个函数 我看了LS几个回答 还有用C写的 。。 还有 楼主。 稍微专业点的C++ 是include 没有.h 之后使用using namespace std; 如果非要用char[](C风格字符串)的话 是需要像Java那样 把整个字符串舍弃 之后创建一个新的字符串的时候把指定位置的字符删掉。

回答2:

#include
using namespace std;

void str_dele(char str[],int m) //删除字符串str的第m个字符
{
int i,j=0,length=strlen(str);
char temp_str[100];
if(m>strlen(str))
cout<<"删除的位置不对!"< else
{
for( i=0;i if(i==m-1) continue;
else
temp_str[j++]=str[i];
}

for(i=0,j=0;j str[j++]=temp_str[i++];

}

int main()
{
char str_0[]="abcdefghijik";

cout<<"原来的字符串为:"<cout<
str_dele(str_0,2); //函数调用
cout<<"删除指定位置字符后的字符串:"<cout<system("pause");
return 0;
}

回答3:

int str_len(char *p)
{
int i = 0;
while(*p!='\0') {
i++;
p++;
}
return i;
}
void str_del(int loc,char *p)
{
int i;
for(i=loc-1;i *(p+i) = *(p+i+1); }
}
int main()
{
char a[] = "hello";
char *p = a;
int length;
int loc = 2;
length = str_len(p);
printf("%d\n",length);
str_del(loc,p); printf("%s",a);
}

回答4:

C++中的string类中有erase成员函数,其功能是删除字符串中的字符或字符串。
该成员函数的原型为
string erase(int start, int len); //start为要删除字符的起始位置(从0数起),len为要删除字符的个数。
例如:
...
#include
using namespace std;
...
string s1="asdfgh", s2;
s2=s1.erase(2,3); //删除s1中从第2个字符其的3个字符。

则s2的内容为"ash"