我有写功能
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指针中。
1条答案
按热度按时间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;
祝你好运!