0
我有一个关于如何在char数组内添加2个字符的问题,我不知道问题出在哪里,但是我想在每个'c'和'd'之后添加任何像'A ',但它不能正常工作,我的意思是如果输入是“abcde”它显示像这样的输出“abcdeA”, ,如果输入“abcdecde”,它显示“abcdecdedA”,但我想要这样“abcdAecdAe “,可以帮助我,这是我的代码。添加2个字符到字符数组
void StrAdd_A_afterEach_CD(char *p1){
char s[100];
char *p2 = &s[0];
int c1=0,c2=0;
while(*p1!='\0')
{
if(*p1++=='c')
if(*p1=='d')
{
p1--;
*p2++ = *p1++;
*p2++ = *p1++;
*p2 = 'A';
p2++;
c1++;
}
else
{
p1--;p1--;
*p2 = *p1;
p1++;p2++;
c2++;
}
}
*p2 = '\0';
p2-=(c2+c1);
p1-=c2;
while(*p2!='\0')
{
*p1 = *p2;
p1++;p2++;
}
*p1 = '\0';
}
int main(){
char s1[100];
gets(s1);
StrAdd_A_afterEach_CD(&s1[0]);
cout<<s1;
cout<<endl;
return 0;
}
我不想将函数更改为任何返回类型,如char * * func。或者用功能来完成它,因为我正在学习基础知识,但请帮我解决这个问题,谢谢。
使用'std :: vector',整个** mess **消失。 –
你为什么这么做C方式? C++可以像C一样行事,但它存在是有原因的。 – 2014-03-27 22:12:40
感谢您的帮助,但我不想要矢量,因为直到现在我还没有学到它,我想要像C++,而不使用函数或向量,并且不更改'void',谢谢 – user3457718