sscanf操作字符串和整型的区别
生活随笔
收集整理的這篇文章主要介紹了
sscanf操作字符串和整型的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? 今天測試了一下,發現sscanf操作字符串和整型在格式上是有區別的,下面來看看。下面2個例子都是要取字符串對應的12347那段數字。
先看操作字符串的:
?
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取出來的。
?
操作整型的:
?
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
?
這里使用整型取出來的。
上面2個sscanf中對應的格式不一樣,字符串取的格式明顯簡單一些,整型取格式比較復雜。根據不同的情況進行取舍。
?
再看測試:
?
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
?
打印錯誤,這證明操作整型時,這種簡單格式不可取。
?
再看:
?
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|
?
打印多了,這也有問題。
?
總算明白一點了。
?
?
?
總結
以上是生活随笔為你收集整理的sscanf操作字符串和整型的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ssacnf和sprintf实战取ip地
- 下一篇: shell命令的文本计算