📜  C |字串|问题1

📅  最后修改于: 2021-05-28 05:42:11             🧑  作者: Mango

考虑下面的代码。函数myStrcat连接两个字符串。它将b的所有字符附加到a的末尾。因此,预期输出为“极客测验”。该程序可以正常编译,但是在运行时会产生分段错误。

#include 
  
void myStrcat(char *a, char *b)
{
    int m = strlen(a);
    int n = strlen(b);
    int i;
    for (i = 0; i <= n; i++)
       a[m+i]  = b[i];
}
  
int main()
{
    char *str1 = "Geeks ";
    char *str2 = "Quiz";
    myStrcat(str1, str2);
    printf("%s ", str1);
    return 0;
}

以下哪项更改可以更正程序,以便打印“ Geeks Quiz”?
(A) char * str1 =“极客”;可以更改为char str1 [100] =“ Geeks”;
(B) char * str1 =“极客”;可以更改为char str1 [100] =“ Geeks”;在myStrcat的末尾添加a [m + n-1] =’\ 0’行
(C)在myStrcat的末尾添加a [m + n-1] =’\ 0’行
(D)在myStrcat()的开头添加’a =(char *)malloc(sizeof(char)*(strlen(a)+ strlen(b)+ 1))行答案: (A)
说明:请参阅以下说明。

https://www.geeksforgeeks.org/storage-for-strings-in-c/

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。