首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问达人一个小疑点,char*指针如何操作字符数组,小弟我想追加一个字符在后面感谢万分

2013-03-01 
请教达人一个小问题,char*指针怎么操作字符数组,我想追加一个字符在后面感谢万分一定要用指针!例如:有一个

请教达人一个小问题,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++的库,而且没有用到你强调的指针。
不知是不是你想要的哈?

热点排行