从c中的一个点到行尾获取输入的子串

时间:2016-11-12 16:56:31

标签: c substring

首先,我正在研究一个基于用户输入的C程序,它返回不同的东西。我有这个函数,给一行一个分隔符和一个索引,它通过该行,并根据分隔符将字符串分成子串,并根据索引返回子字符串:

void get_substring(char line[], char result[], char separator, int index){
   int i, j=0, my_index=0;
   for(i=0; line[i] != '\0'; i++){
        if(line[i]==separator)
           my_index++;
        else if(my_index == index)
           result[j++]=line[i];
    }
    result[j]='\0';
}

所以基本上我在控制台上写 / pmsg用户你好我是约翰我使用函数get_substring()将用户保存在全局变量char a_result2中[]和整个输入行保存在名为a_message []的全局变量中。函数 / pmsg 的输出应为:

**output : private message (user): Hello I'm John** 

问题是我不知道如何检索整个消息,因为消息可能由很多单词组成,而我的函数get_substring如果我知道消息的长度,我只能得到子字符串。如果你能帮助我,我将非常感激,谢谢。这是我已经使用的函数pmsg的代码:

void pmsg(){

  printf("output : private message (%s): ", a_result2);
}

1 个答案:

答案 0 :(得分:0)

如果你的编译二进制文件被调用,例如pmsg并且您希望使用参数调用它,您必须在消息周围使用引号

./pmsg username "Hello I'm John"

然后使用main的参数。这是一个例子:

int main(int argc, char const *argv[])
{
    int i;      
    printf("output : private message (%s) : %s\n", argv[1], argv[2]);

    return 0;
} 

此处argv[1]是用户名,argv[2]是整个讯息 检查如何使用主herehere

的参数