ai didi

c - 在没有函数帮助的情况下将 char 添加到字符串

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:48 24 4
gpt4 key购买 nike

对于我的程序,我需要在不使用标准库或 IO 函数的情况下将 char(char) 添加到 string(char *)。例如:

char *s = "This is GOO";
char c = 'D';

s = append(s, c);

和 s 会产生字符串“This is GOOD”。是否有一些正确的方法来操纵数组以实现这一目标?同样,从字符数中生成字符串就足够了。我很确定我可以使用 malloc,但不是肯定的...

char * app(char* s, char c){
char *copy;
int l = strlen_(s);
copy = malloc(l+1);
copy = s;
copy[l] = c;
copy[l+1] = '\0';
return copy;
}

不能使用strcpy

最佳答案

在不给出答案的情况下,因为这听起来像是类作业,下面是您想要在高层次上做的事情:

  1. 确定字符串的长度,即找到'\0'结束符。
  2. 分配一个长一个字符的新字符数组。
  3. 将旧字符串复制到新字符串。
  4. 在末尾添加新角色。
  5. 确保新字符串末尾有一个 '\0' 终止符。

(如果您被允许修改现有字符串,那么您可以跳过第 2 步和第 3 步。但是在您的示例中,char *s = "This is GOO" 具有 s 指向不可修改的字符串文字,这意味着您不能就地修改它,必须使用副本。)


对您发布的代码的评论:

char * app(char* s, char c) {
char *copy;
int l = strlen_(s);
copy = malloc(l+1); /* should be +2: +1 for the extra character and +1 for \0 */
copy = s; /* arrays must be copied item by item. need a for loop */
copy[l] = c;
copy[l+1] = '\0';
return copy;
}

关于c - 在没有函数帮助的情况下将 char 添加到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15400331/

24 4 0
文章推荐: c - 奇怪的类型转换错误
文章推荐: c - 使用 for 循环将字符存储到字符串中?
文章推荐: c - 在C中,如何读取地址前的内存块
文章推荐: c++ - 同一台机器上的多个fastcgi程序
太空宇宙
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com