在C中:
我试图编写2个函数,其中一个是从用户那里获得一行(字符串),然后将其发送给另一个函数,该函数从字符串的开头删除(如果存在)空格。
我试图使“ remove_space”函数在指针上起作用,通过使其指向没有空间的字符串的继续来对其进行更改。
例如:
假设用户类型:
“ hi123”
我将此字符串保存在某些指针中
我想将此指针发送到“ remove_space”函数,并使指针指向“ hi123”,而没有空格开始...
现在..从我所看到的指针我有一些问题。
这是我写的:
void remove_space(char** st1)/**function to remove space**/
{
char* temp_st = strtok(st1, " ");
strcpy(st1, temp_st);
}
void read_comp(void)
{
printf("read_comp FUNCTION\n");
char* st1; /**read the rest of the input**/
fgets(st1,30,stdin);
remove_space(st1);
printf("%s\n",st1);
}
最佳答案
您尚未分配用于在st1
中存储字符串的内存。
char st1[30];
另外,您在这里不需要
char**
。void remove_space(char *st1)
{
char *temp_st = strtok(st1, " ");
strcpy(st1, temp_st);
}
关于c - 两个功能-获取字符并在指针上工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14021980/