成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語言stoi函數(shù)用法 strlen函數(shù)用法c語言

哪位C語言大神幫看一下,改錯(cuò) 急急急,對(duì)的追加50分

#includestdio.h

10年積累的網(wǎng)站制作、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有陽高免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

#includestdlib.h

#includectype.h

long stoi(char *s,int *i) //stoi函數(shù)返回類型應(yīng)該跟返回值的類型一樣

{

long n=0;

while(isdigit(s[*i]))

n=n*10+s[(*i)++]-48;//這里的字符為'0'、'1'、、、要變成數(shù)字

return n;

}

long add(char *s)

{

int i=0,*pi=i;//指針pi沒有指向變量

char op;

long a=0,b=0,c;

a=stoi(s,pi);

op=s[(*pi)++];

b=stoi(s,pi);

switch(op) {

case '+':return a+b;

case '-':return a-b;

case '*':return a*b;

case '/':if(b==0){ printf("div!0");exit(0);}//這邊兩條語句加括號(hào)

return a/b;

default: printf("operator error!");exit(0);

}

}

int main(void)

{

char s[80];

gets(s);

printf("%s=",s);

printf("%ld\n",add(s));

return 0;

}

我運(yùn)行過了才帖上來的,錯(cuò)誤也都指出來了。分給我吧。

編寫一個(gè)函數(shù),將字符串轉(zhuǎn)換成相應(yīng)的整數(shù)。轉(zhuǎn)換時(shí),遇到非數(shù)字字符則停止轉(zhuǎn)換。

int stoi(char s[]){

int n=0,i=0;

while (s[i]='0' s[i]='9'){n=n*10+(s[i]-'0');i++;}

return n;

}

C++里stoi函數(shù)要怎么使用?

int x;

char *s="123";

x=stoi(s);

完事

(stoi就是string to int 的縮寫嘛)

c語言編程 把十進(jìn)制轉(zhuǎn)換為十六進(jìn)制

方法一:

#includeiostream

#include string

using namespace std;

string DecIntToHexStr(long long num)

{ string str; long long Temp = num / 16; int left = num % 16; if (Temp 0) str +=

DecIntToHexStr(Temp); if (left 10) str += (left + '0'); else str += ('A' + left - 10); return str;}

string DecStrToHexStr(string str){ long long Dec = 0; for (int i = 0; i str.size(); ++i) Dec =

Dec * 10 + str[i] - '0'; return DecIntToHexStr(Dec);}int main()

{ string DecStr; while (cin DecStr) { cout "0x" + DecStrToHexStr(DecStr); } return 0;}

方法二:

#includeiostream

#include string

#includevector

#include sstream

#include math.h

using namespace std;int main()

{ string decStr; cin decStr; int num = stoi(decStr); vectorintv; while (num) { int bit = num % 2; v.push_back(bit); num = num / 2; }

reverse(v.begin(), v.end()); string hexStr; if (v.size() % 4 == 0) { for (int i = 0; i v.size() / 4; ++i) { int temp = 0, k = 3; for (int j = i * 4; j (i +

1) * 4; ++j) { if (v[j] == 1) temp += pow(2, k); --k; }? ?if (temp = 9) hexStr += temp; else hexStr += ('A' + temp - 10); } }

else { int zeroNum = 4 - v.size() % 4; for (int i = 0; i zeroNum; ++i) v.insert(v.begin(), 0); for (int i = 0; i v.size() / 4; ++i) { int temp = 0, k = 3; for

(int j = i * 4; j (i + 1) * 4; ++j) { if (v[j] == 1) temp += pow(2, k); --k; }

if (temp = 9) { stringstream ss; string strTemp;

ss temp; ss strTemp; hexStr += strTemp; } else hexStr += ('A' + temp - 10); } } cout hexStr endl; return 0;}

擴(kuò)展資料:

還有3種方式可以實(shí)現(xiàn),其中兩種是使用系統(tǒng)函數(shù),另一種是直接自己編寫。

下面的代碼就是3種方式的實(shí)現(xiàn),包括2位的整數(shù)和任意整數(shù)(2的31次方以內(nèi))都可以??勺约哼x擇需要的實(shí)現(xiàn)方式。

利用系統(tǒng)函數(shù)有

1. char *? itoa ( int value, char * str, int base );value是要轉(zhuǎn)化的數(shù)字,str是轉(zhuǎn)化后的字符串存儲(chǔ)的位置,base是進(jìn)制數(shù)(但是這個(gè)函數(shù)不是標(biāo)準(zhǔn)C函數(shù),有些編譯器是不支持的?。?。所以代碼可以為:

char buffer [33]; //用于存放轉(zhuǎn)換好的十六進(jìn)制字符串,可根據(jù)需要定義長度 char * inttohex(int aa){? ? itoa (aa, buffer, 16);? ? return (buffer);}

2. sprintf(str,"%x",value);str是轉(zhuǎn)化存儲(chǔ)的位置,%x表示十六進(jìn)制格式,value是要轉(zhuǎn)化的數(shù)字。所以代碼可以為:

char buffer [33]; //用于存放轉(zhuǎn)換好的十六進(jìn)制字符串,可根據(jù)需要定義長度 char * inttohex(int aa){? ? sprintf(buffer, "%x", aa);? ? return (buffer);}

3. 自己編寫

如果參數(shù)只要兩位數(shù)的整數(shù),那么很簡單。

代碼如下:

#include stdio.h#include stdlib.h char buffer [33]; //用于存放轉(zhuǎn)換好的十六進(jìn)制字符串,可根據(jù)需要定義長度 char * inttohex(int aa)

{? ? sprintf(buffer, "%x", aa);? ? return (buffer);} int main ()? ? ? ? ? ? ?

{? int num;? char * hex_str;? printf ("Enter a number: ");? scanf ("%d",num);? hex_str = inttohex (num);? printf ("Hexadecimal number: %sH\n", hex_str);? return 0;}

C++中,字符串怎么轉(zhuǎn)數(shù)值?

字符串怎么轉(zhuǎn)數(shù)值?

答:用函數(shù) std::stoi()

函數(shù)原型:

int stoi (const string str, size_t* idx = 0, int base = 10);

int stoi (const wstring str, size_t* idx = 0, int base = 10);

base 是進(jìn)制。

// 程序例子,轉(zhuǎn) 十進(jìn)制,16進(jìn)制,2進(jìn)制 的string 或 自動(dòng)判斷

#include iostream

#include string

int main ()

{

std::string str_dec = "2001, A Space Odyssey";

std::string str_hex = "40c3";

std::string str_bin = "-10010110001";

std::string str_auto = "0x7f";

std::string::size_type sz; // alias of size_t

int i_dec = std::stoi (str_dec,sz);

int i_hex = std::stoi (str_hex,nullptr,16);

int i_bin = std::stoi (str_bin,nullptr,2);

int i_auto = std::stoi (str_auto,nullptr,0);

std::cout str_dec ": " i_dec " and [" str_dec.substr(sz) "]\n";

std::cout str_hex ": " i_hex '\n';

std::cout str_bin ": " i_bin '\n';

std::cout str_auto ": " i_auto '\n';

return 0;

}

輸出:

2001, A Space Odyssey: 2001 and [, A Space Odyssey]

40c3: 16579

-10010110001: -1201

0x7f: 127

=======================

上述方法比較新。老編譯器可能不支持。

-------

其實(shí)最簡單的是 c 的 sscanf( "12345","%d",x);

#include iostream

#include string

using namespace std;

#include stdio.h

接下來 c 的東西 可以 直接在 c++ 里 使用。

網(wǎng)站題目:c語言stoi函數(shù)用法 strlen函數(shù)用法c語言
本文地址:http://jinyejixie.com/article20/hpceco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、定制網(wǎng)站、網(wǎng)站導(dǎo)航、電子商務(wù)軟件開發(fā)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
和政县| 商洛市| 成武县| 曲阳县| 祁阳县| 钦州市| 吐鲁番市| 沂南县| 龙口市| 汝州市| 清流县| 扬州市| 金秀| 芒康县| 柳江县| 东至县| 台北市| 赫章县| 溧水县| 迁安市| 化州市| 临城县| 揭西县| 府谷县| 徐闻县| 察隅县| 绍兴市| 舞钢市| 江口县| 平乡县| 东乌珠穆沁旗| 新宾| 罗源县| 黄山市| 商城县| 平武县| 象州县| 内乡县| 灵宝市| 潍坊市| 达拉特旗|