从字符串指针C获取更新的值

在这儿用C弦把头发剪掉。我在项目中有一个函数,该函数返回char *指针。

在使用它之前,我需要更改该字符串的元素。我读到的所有内容都只是使用char []格式的char数组,但这与我的项目在当前状态下不兼容(如果有的话)。

我一直在拼命地寻找将前n个字符复制到第二个char指针,添加更新后的值,然后合并不占用40行代码的初始指针的剩余部分(减去更新的原始值)的方法。

为此,每次尝试使用fgetc均未将未签名的int写入“更新的指针”。我是否需要将unsigned int sprintf放入char缓冲区或其他内容?为什么感觉如此荒谬?

在所需行为的第一步中尝试失败的示例:

int main() {
  char *s;
  s = "babado = lubidee = popop =pew"; 
  char * s1;
  s1 = malloc(10);
  memset(s1,'0',9);
  strcpy(s1,fgetc(s));

  for (int i = 0; i<4; i++){
    strcat(s1,fgetc(s));
  }

  printf("%s",s1);

  return 0;
}
评论
单于语海
单于语海

如果您只需要将字符串复制到另一个指针,

char *newptr;
//Allocate memory for new pointer
int i=0;
while(i<n). //first n characters
    *(newptr+i)=*(returnedptr+i);
  //Add new value
i++;
while( *(returnedptr+i)!='\0')
      *(newptr+i)=*(returnedptr+i);
点赞
评论