我必须输入一个字符串并将其显示为标准输出。
理想的解决方案是将字符串获取到一个char指针数组中,但是我在scanf上得到一个错误,我推测是因为char指针字符串解决方案没有为它分配空间。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char *charString;
printf("Input string - max %i caratteri: ",CHARARRAYSIZE);
scanf("%s", charString);
printf("%s",charString);
return EXIT_SUCCESS;
}
因此,我求助于将sting获取到一个char数组中,然后将(strcpy)复制到一个char指针string.v中。在本例中,我得到一个警告,说在strcpy调用中,strcpy是在没有初始化的情况下使用的。我该怎么解决?
请在下面找到第二个案例的代码。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define CHARARRAYSIZE 16
int main(void) {
char *charString;
char charArray[CHARARRAYSIZE];
printf("Input string - max %i characters: ",CHARARRAYSIZE);
scanf("%s", charArray);
strcpy(charString,charArray);
printf("%s",charString);
return EXIT_SUCCESS;
}
有什么方法可以达到我的目的并且避免使用char数组
最佳答案
您需要为字符分配空间:
charString = malloc(CHARARRAYSIZE+1);
以后,你需要释放他们
free(charString);