如何读取c中用":"分隔的两个字符串

use*_*712 1 c string file scanf

我需要知道如何读取字符串并分成两部分,如下例所示.

我在@amanda文件中有这个字符串:@bruna,但我不能读作单独的单词,而且每个商店都有两个不同的变量,如下所示:

char userA[20];
char userB[20];
scanf("%s:%s", userA, userB);
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

hmj*_*mjd 7

使用扫描集来防止第一行%s使用整个行,因为%s它只会在遇到空格时停止使用:

if (scanf("%19[^:]:%19s", userA, userB) == 2)
{
    /* 'userA' and 'userB' have been successfully assigned. */
}
Run Code Online (Sandbox Code Playgroud)

这里%19[^:]读最多19个字符,但遇到一个冒号时停止.指定宽度预先缓冲区溢出.始终检查结果scanf(),返回分配的数量,以确保后续代码不处理陈旧或未初始化的变量.