请教达人一个小问题,char*指针怎么操作字符数组,我想追加一个字符在后面感谢万分
一定要用指针!
例如:
有一个字符数组,char str1[] = "abcde";
然后我定义一个char* p;
我想用p这个指针来移动到str1的字符数组最后一个位置,并且在这个后面追加一个a,
请问代码该怎么写,谢谢了
[解决办法]
假如你坚持用C,一般不能直接在后面追加,很可能造成灾难性的后果,后面那个位置很可能是非常重要的东西。你可以重新分配一个新的内存,然后移过去。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str1[] = "abcde";
int len=sizeof(str1)/sizeof(str1[0]);//结果是6,因为还有一个'\0'
printf("%d\n",len);
char *p=malloc(len+1);//多申请一个位置来放'a'
int i;
for(i=0;i<len;i++)
{
*(p+i)=str1[i];//或者*(p+i)=*(str1+i);
}
*(p+len-1)='a';
*(p+len)='\0';
printf("%s",p);
return 0;
}
3楼的可行,但那个用的C++的库,而且没有用到你强调的指针。
不知是不是你想要的哈?