簡體   English   中英

如何使用 sscanf 在分隔符上拆分字符串?

[英]How do I use sscanf to split a string on a delimiter?

我只想用sscanf7b-7a得到7b

我試過:

char str[32] = "7b-7a";
char out[32];
sscanf(str, "%s-%s", out);
std::cout << out;

Output 是: 7b-7a

我只需要 output 7b

您可以像這樣嘗試 sscanf:

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    char str[32] = "7b-7a";
    char out[32];
    sscanf(str, "%[a-z0-9]-%*s",out);
    std::cout << out;
    return 0;
}

在我看來,更簡單的方法是使用流和 getline,就像這樣。

https://godbolt.org/z/4TTKz5KPx

#include<iostream>
#include<sstream>

int main(){
    std::string in{"7b-7a"};
    std::stringstream ss{in};

    std::string out;
    std::getline(ss, out, '-');
    std::cout << out << "\n";

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM