假设我有一个字符串"MyName(10)"
我想检查以(%i)
结尾的字符串,并将该数字分配给变量
我试过了sscanf
,但它没有用。
sscanf("MyName(10), "%s(%i)", tempName, &count);
它在MyName(10)
和tempName
中存储count
为0
。
MyName
可以是可变长度,不固定为"MyName"
,可以是"Mynaaaaaame"
。
答案 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()