sscanf操作字符串和整型的区别
生活随笔
收集整理的這篇文章主要介紹了
sscanf操作字符串和整型的区别
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ? ? ? ? 今天測(cè)試了一下,發(fā)現(xiàn)sscanf操作字符串和整型在格式上是有區(qū)別的,下面來(lái)看看。下面2個(gè)例子都是要取字符串對(duì)應(yīng)的12347那段數(shù)字。
先看操作字符串的:
?
int main() {char buf[100] = "F:12347_121|C:1223244_2323|S:547656|";char buf1[100] = "";sscanf(buf, "%*[^:]:%[^_]", buf1);printf("%s\n", buf1);return 0; }打印:12347
?
這里12347是字符串buf1取出來(lái)的。
?
操作整型的:
?
int main() {char buf[100] = "F:12347_121|C:1223244_2323|S:547656|";int a = 0;sscanf(buf,"F:%d_%*[^|]|C:%*d_%*d|S:%*[^|]|",&a);printf("%d\n", a);return 0; }打印:12347
?
這里使用整型取出來(lái)的。
上面2個(gè)sscanf中對(duì)應(yīng)的格式不一樣,字符串取的格式明顯簡(jiǎn)單一些,整型取格式比較復(fù)雜。根據(jù)不同的情況進(jìn)行取舍。
?
再看測(cè)試:
?
int main() {char buf[100] = "F:12347_121|C:1223244_2323|S:547656|";int a = 0;sscanf(buf, "%*[^:]:%[^_]", &a);printf("%d\n", a);return 0; }打印:875770417
?
打印錯(cuò)誤,這證明操作整型時(shí),這種簡(jiǎn)單格式不可取。
?
再看:
?
int main() {char buf[100] = "F:12347_121|C:1223244_2323|S:547656|";char buf1[100] = "";sscanf(buf,"F:%s_%*[^|]|C:%*s_%*s|S:%*[^|]|",buf1);printf("%s\n", buf1);return 0; }打印:12347_121|C:1223244_2323|S:547656|
?
打印多了,這也有問(wèn)題。
?
總算明白一點(diǎn)了。
?
?
?
總結(jié)
以上是生活随笔為你收集整理的sscanf操作字符串和整型的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ssacnf和sprintf实战取ip地
- 下一篇: shell命令的文本计算