今日總結了下了簡單的方法;
其實早就有了sscanf函式;以前沒有注意,今日拿出來說說;
比如說我們用了cstring str="126";假如說這個資料是從edit控制項等地方取得;那麼我們需要int型別來計算;
就有了int a;
sscanf(str,"%d",&a);
//這個時候我們已經將126賦值給a了;a 的值就是126;
輸出之:
那麼就ok了;
再有輸出之:
printf("%d/n",a);
printf("%s/n",b);
容易和scanf混淆;
int sscanf( string str, string fmt, mixed var1, mixed var2 ... );
int scanf( const char *format [,argument]... );
說明:
sscanf與scanf類似,都是用於輸入的,只是後者以鍵盤(stdin)為輸入源,前者以固定字串為輸入源。
2. 取指定長度的字串。如在下例中,取最大長度為4位元組的字串。
sscanf("123456 ", "%4s", buf);
printf("%s/n", buf);
結果為:1234
3. 取到指定字元為止的字串。如在下例中,取遇到空格為止字串。
sscanf("123456 abcdedf", "%[^ ]", buf);
printf("%s/n", buf);
結果為:123456
4. 取僅包含指定字符集的字串。如在下例中,取僅包含1到9和小寫字母的字串。
sscanf("123456abcdedfbcdef", "%[1-9a-z]", buf);
printf("%s/n", buf);
結果為:123456abcdedf
5. 取到指定字符集為止的字串。如在下例中,取遇到大寫字母為止的字串。
sscanf("123456abcdedfbcdef", "%[^a-z]", buf);
printf("%s/n", buf);
結果為:123456abcdedf
6、給定乙個字串iios/12ddwdff@122,獲取 / 和 @ 之間的字串,先將 "iios/"過濾掉,再將非'@'的一串內容送到buf中
sscanf("iios/12ddwdff@122", "%*[^/]/%[^@]", buf);
printf("%s/n", buf);
結果為:12ddwdff
7、給定乙個字串「「hello, world」,僅保留world。(注意:「,」之後有一空格)
sscanf(「hello, world」, "%*s%s", buf);
printf("%s/n", buf);
結果為:world
%*s表示第乙個匹配到的%s被過濾掉,即hello被過濾了
如果沒有空格則結果為null。
sscanf,表示從字串中格式化輸入
上面表示從str中,輸入數字給x,就是32700
久以前,我以為c沒有自己的split string函式,後來我發現了sscanf;一直以來,我以為sscanf只能以空格來界定字串,現在我發現我錯了。
sscanf是乙個執行時函式,原形很簡單:
int sscanf(
const char *buffer,
const char *format [,
argument ] ...
我遇到了「新人牆」?
nba中每年都會湧入一批新秀,他們是聯盟未來的希望,但是他們需要2 3年的時間成長,最終成為合格的nba球員,少數成為超級巨星。但是在新秀期間,他們都會碰到所謂的新秀牆,在這個階段,他們遇到了麻煩,他們狀態起伏不定,上場時間或多或少,他們開始迷失自己,沒有上場時間,他們變得沒有自信,只有坐在板凳上看...
CString轉為string遇到的問題
今天寫程式遇到在mfc中獲取控制項上的字元時,定義了乙個cstring型別的變數來存放。然後需要將cstring型別轉為string型別,用於其他函式的使用 出現乙個問題,導致我晚上整整花了四十幾分鐘,想死的心都有了。由於對個中字元型別不是很了解,包括c style的字串,c 中模板basic st...
今天遇到了麻煩事
今天有兩件麻煩事 1 使用svn add增加我修改的一些檔案時,由於沒有在提交版本前make clean,因此看到有很多編譯中間 檔案被提交了,我趕忙按了ctrl c,make clean之後再提交就會出現找不到這些被刪除的檔案的錯誤資訊。這的錯誤主要原因是 svn add了一些檔案,但沒有svn ...