C语言 如何在指针数组中存储字符串?

fruv7luv  于 2022-12-02  发布在  其他
关注(0)|答案(1)|浏览(229)

我有写功能

char *string_undo[100];

void write()
{
    char str[100];
    int m=0;
    char c;
    printf("\nEnter the string: ");
    while(1)
    {
      c = getchar();
      if(c=='.')
      {
        break;
      }
      str[m] = c;
      m++;
    }
    str[m] = NULL;
   (stack_undo[i]) = str;

}

我试图将输入的字符串存储到string_undo。这是一个'C'语言程序,所以我有这个字符串赋值的问题。我已经尝试过使用字符串复制功能,即使它不工作。
字符串未保存在stack_undo指针中。

ia2d9nvy

ia2d9nvy1#

我已经忘记了我的很多C技能,但我认为你的代码中有一些错误:
1.-char *string_undo[100];
在这句话中,您创建了一个表......将字符串存储在指针中,您可以改为:
char *string_undo = "";
对于函数编写,将其初始化为“”尤为重要
2.-char str[100];
如果要使用指针,我认为可以这样做:
char *str = "";
3.-str[m] = NULL;
我不知道这是否正确,我总是用
str[m]='\0';
4.-(stack_undo[i]) = str;
什么是“i”变量?它并不出现在所有的代码中。。和stack_undo我想你想写string_undo。。测试以下其中一个:
string_undo = &str;
我不知道是这边还是
string_undo = str;
祝你好运!

相关问题