检查字符串是否以(%i)结尾,然后在变量中分配该数字

时间:2015-06-10 11:25:23

标签: c++ string scanf

假设我有一个字符串"MyName(10)"
我想检查以(%i)结尾的字符串,并将该数字分配给变量 我试过了sscanf,但它没有用。

sscanf("MyName(10), "%s(%i)", tempName, &count);

它在MyName(10)tempName中存储count0

MyName可以是可变长度,不固定为"MyName",可以是"Mynaaaaaame"

3 个答案:

答案 0 :(得分:1)

试试这个示例代码..可能会有所帮助......您可以根据需要调整任何内容

//add this js in your page 
$(document).ready(function() {
    $('#btnSubmit').click(function(e) {
        var isValid = true;
        $('input[type="text"]').each(function() {
            if ($.trim($(this).val()) == '') {
                isValid = false;
                $(this).css({
                    "border": "1px solid red",
                    "background": "#FFCECE"
                });
            }
            else {
                $(this).css({
                    "border": "",
                    "background": ""
                });
            }
        });
        if (isValid == false) 
            e.preventDefault();
        else 
            alert('Thank you for submitting');
    });
});

答案 1 :(得分:0)

sscanf(Name, "%*[^(]%c%i%[^)]%*c", &var);

答案 2 :(得分:0)

由于这被标记为C ++,您可以这样做:

void assignVariable(std::string& s, std::string replace, int value)
{
    std::size_t pos;
    while ((pos = s.find(replace)) != std::string::npos)
        s.replace(pos, 2, std::to_string(value));
}

int main()
{
    std::string name = "%imyname(%i)%i";
    assignVariable(name, "%i", 365);
    std::cout << name;
    cin.get();
    return 0;
}

这将替换传递给函数的字符串中所有出现的replace。如果您想将其限制为仅最后一次出现,那么您可以使用std::string::find_last_of()