陣列與字串 整數 字串之間的轉換

2021-08-27 18:10:08 字數 2037 閱讀 2111

sscanf函式原型為int sscanf(const char *str, const char *format, ...)。將引數str的字串根據引數format字串來轉換並格式化資料,轉換後的結果存於對應的引數內。具體功能如下:

(1)根據格式從字串中提取資料。如從字串中取出整數、浮點數和字串等。

(2)取指定長度的字串

(3)取到指定字元為止的字串

(4)取僅包含指定字符集的字串

(5)取到指定字符集為止的字串

sscanf可以支援格式字元%:

(1)-: 表示範圍,如:%[1-9]表示只讀取1-9這幾個數字 %[a-z]表示只讀取a-z小寫字母,類似地 %[a-z]只讀取大寫字母

(2)^: 表示不取,如:%[^1]表示讀取除'1'以外的所有字元 %[^/]表示除/以外的所有字元

(3),: 範圍可以用","相連線 如%[1-9,a-z]表示同時取1-9數字和a-z小寫字母 

(4)原則:從第乙個在指定範圍內的數字開始讀取,到第乙個不在範圍內的數字結束%s 可以看成% 的乙個特例 %[^ ](注意^後面有乙個空格!)

舉例:

const char *s = "";

char protocol[32] = ;

char host[128] = ;

char port[8] = ;

sscanf(s,"%[^:]://%[^:]:%[1-9]",protocol,host,port);

printf("protocol: %s\n",protocol);

printf("host: %s\n",host);

printf("port: %s\n",port);

sprintf函式原型為int sprintf(char *str, const char *format, ...)。作用是格式化字串,具體功能如下所示:

(1)將數字變數轉換為字串。

(2)得到整型變數的16進製制和8進製字串。

(3)連線多個字串。

舉例:

char str[256] = ;

int data = 1024;

//將data轉換為字串

sprintf(str,"%d",data);

//獲取data的十六進製制

sprintf(str,"0x%x",data);

//獲取data的八進位制

sprintf(str,"0%o",data);

const char *s1 = "hello";

const char *s2 = "world";

//連線字串s1和s2

sprintf(str,"%s %s",s1,s2);

根據該法則,將n階多項式轉化為如下形式進行計算,可以降低計算複雜度

pn(x)=anxn+an−1xn−1+⋅⋅⋅+a1x+a0=((...(((anx+an−1)x+an−2)x+an−3)...)x+a1)x+a0

第一種方法需要n+...+1=n(n+1)2次乘法和n次加法,而第二種方法則需要n次乘法和n次加法

字串處理 字串轉整數

四.字串轉為整數 題目描述 輸入數字字元,輸出數字 寫乙個自己的atoi 關鍵 乙個字元減去 0 就轉化為整型.使用乙個迴圈把字串中的內個字元都轉換為整型再放到相應的位上,就可以解決問題.原始版本 include include using namespace std static const in...

JavaScript數字轉字串,字串轉數字

1 數字轉字串 這裡的name需要繫結字串型別,而index是陣列型別,就是拼接了乙個空字串 也可以使用tostring 字串轉數字 2 var s 234 3 1 純數字轉換 4 5 1 字串在運算操作中會被當做數字型別來處理 6 s 1 7 8 2 字元前加 9 console.log s 10...

數字轉字串 字串轉數字

數字轉字串 這裡首先用到乙個陣列逆置函式如下 void reverse char arr 逆置 for p arr p arr p 將arr陣列逆置 因為將乙個數字轉成字串,若果是從右往左依次獲得,操作較容易,所以以此得到的字串是數字的逆序字串,所以要逆置,才可得到順序 如下 void myitoa...