首页 文章

如何在没有字符串函数的情况下为char数组分配新字符串

提问于
浏览
0

我期待修改一个具有不同字符串的char数组,例如一个带有各种字符串的临时字符数组 . 假设一个char数组A [10] =“alice”,如何指定A [10] =“12” . 不使用字符串函数?

TIA

3 回答

  • 2

    好吧,因为字符串数组注意到但是指向数组的指针你可以像这样分配

    int main(void) {
        char *name[] = { "Illegal month",
                                "January", "February", "March", "April", "May", "June",
                                "July", "August", "September", "October", "November", "December"
        };
        name[10] = "newstring";
        printf("%s",name[10]);
        return 0;
    }
    
  • 2

    在C中,字符串只是一个 char 类型的数组,其中包含可打印字符,后跟一个终止空字符( '\0' ) .

    有了这些知识,您可以避开标准函数 strcpystrcat 并手动分配字符串:

    A[0] = '1';
    A[1] = '2';
    A[2] = '\0';
    

    如果字符串 A 中的字符超出索引 2 ,则它们无关紧要,因为字符串处理函数在 A[2] 遇到空终止符后将停止读取字符串 .

  • 0

    这就像Govind Parmar的答案,但是有了循环 .

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        char str[11] = "hello world";
        char new[5] = "2018";   
        int i = 0;
    
        for (i; new[i] != '\0'; i++)
             str[i] = new[i];
    
        str[i] = '\0';
    
        printf("str => '%s' ",str);
    
        return 0;
    }
    

    输出:

    str => '2018'
    

相关问题