在 C 中,如何将一个字符串分成 3 个短裤,并将其余的字符串分成一个字符串(该字符串作为其中的空格)?
如何将 3 个短裤之间以及字符串其余部分之间有空格的字符串分成 4 个不同的字符串。
示例:
"123 402 10 aaa bbb cc".
我想要的只是
short i=123;
short j=402;
short y=10;
char * c="aaa bbb cc".
尝试使用 sscanf 来执行此操作,但由于空白,我似乎无法掌握最后一个字符串的工作原理。
How can I separate a string that has white spaces between the 3 shorts and between the rest of the string to 4 different strings.
Example:
"123 402 10 aaa bbb cc".
What I want is simply
short i=123;
short j=402;
short y=10;
char * c="aaa bbb cc".
I was trying to use sscanf
to do it but I can't seem to get the hang of getting that last string to work cause of the white space.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一种方法可以是:
One way to do it could be:
这并不困难:
请注意,您必须自己为字符串分配缓冲区,并确保不会发生缓冲区溢出。
It's not that difficult:
Note that you have to allocate the buffer for the string yourself and make sure that no buffer overflow happens.
您不需要
sscanf
。您可以使用strchr
查找空格,使用atoi
将字符串转换为整数,并使用简单的赋值将空格转换为终止零。您也可以这样做:
产量:
i=123 j=402 y=10 c='aaa bbb cc'
You don't need
sscanf
. You can usestrchr
to find the spaces,atoi
to turn strings into integers, and simple assignment to turn the spaces into terminating zeroes.You can also do this:
Yields:
i=123 j=402 y=10 c='aaa bbb cc'