C語言將字串轉為整數
1、C語言有atoi、atol、atof等庫函式,可分別把ASCII編碼的字串轉化為int、long、float型別的數字。需要注意的是,這個幾個函式是C語言提供的擴充套件功能,並不是標準的函式,必須引入標頭檔案# include <stdlib. h>;若需要移植性,請用sscanf函式。
例如:int num=atoi(“12345”);//字串”12345”轉換為數字12345,並存入num變數中
2、sscanf函式。
sscanf函式是C語言中從一個字串中讀進與指定格式相符的資料的函式。sscanf與scanf類似,都是用於輸入的,只是後者以螢幕(stdin)為輸入源,前者以固定字串為輸入源。使用sscanf函式可以實現字串到任意資料型別的轉換。
例如:char s[]=”12345”;
int n;
sscanf(s,”%d”,&n);//把字串s轉換為整形資料並存入變數n中
3、字串數字之間的轉換
(1)string --> char *
string str("OK");
char * p = str.c_str();
(2)char * -->string
char *p = "OK";
string str(p);
(3)char * -->CString
char *p ="OK";
CString m_Str(p);
//或者
CString m_Str;
m_Str.Format("%s" ,p);
(4)CString --> char *
CString str("OK");
char * p = str.GetBuffer(0);
...
str.ReleaseBuffer();
(5)string --> CString
CString.Format("%s", string.c_str());
(6)CString --> string
string s(CString.GetBuffer(0));
GetBuffer()後一定要ReleaseBuffer(),否則就沒有釋放緩衝區所佔的空間,CString物件不能動態增長了。
(7)double/float->CString
double data;
CString.Format("%.2f",data); //保留2位小數
(8)CString->double
CString s="123.12";
double d=atof(s);
(9)string->double
//c_str函式的返回值是const char*的,atof不能直接賦值給char*,所以就需要我們進行相應的操作轉化,下面就是這一轉化過程
double d=atof(s.c_str());
4、數字轉字串:使用sprintf()函式
char str[10];
int a=1234321;
sprintf(str,"%d",a);
char str[10];
double a=123.321;
sprintf(str,"%.3lf",a);
char str[10];
int a=175;
sprintf(str,"%x",a);//10進位制轉換成16進位制
char itoa(int value, char string, int radix);
同樣也可以將數字轉字串,不過itoa()這個函式是平臺相關的(不是標準裡的),故在這裡不推薦使用這個函式。
4、使用stringstream類,必須使用#include<sstream>
用ostringstream物件寫一個字串,類似於sprintf()
ostringstream s1;
int i = 22;
s1 << "Hello " << i << endl;
string s2 = s1.str();
cout << s2;
用istringstream物件讀一個字串,類似於sscanf()
istringstream stream1;
string string1 = "25";
stream1.str(string1);
int i;
stream1 >> i;
cout << i << endl; // displays 25
相關推薦
C語言將字串轉為整數
1、C語言有atoi、atol、atof等庫函式,可分別把ASCII編碼的字串轉化為int、long、float型別的數字。需要注意的是,這個幾個函式是C語言提供的擴充套件功能,並不是標準的函式,必須引入標頭檔案# include <stdlib. h&g
C語言將一個正整數分解質因數程式碼及解析
將一個正整數分解質因數。例如:輸入888,打印出888=2*2*2*3*37。程式分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成: 如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。 如果n>k,但n能被k整除,則應打印出k的值,並用n除以k的商,作為
C語言將字串轉json
示例程式碼: #include <stdio.h> #include <string.h> #include <stdlib.h> char *strrpc(char *str,char *oldstr,char *newstr){ /*
C語言將字串轉換成對應的數字(十進位制、十六進位制)
問題1:講一個十進位制數字的字串表示轉換成對應的整數。舉例:將“1234”轉換成整數1234./*將字串s轉換成相應的整數*/ int atoi(char s[]) { int i = 0; int n = 0; for (i =
C語言中字串與整數的相互轉換
C語言提供了幾個標準庫函式,可以將任意型別(整型、長整型、浮點型等)的數字轉換為字串,下面列舉了各函式的方法及其說明。 # include <stdlib.h> 將數字轉換為字串 ● itoa():將整型值轉換為字串。 ● ltoa():將長整
C語言 將字串反序輸出
#include <stdio.h> #include <string.h> void rev(char *buf, int size) { int i = 0; int temp; fo
c語言實現將整數轉為字串和字串轉為整數
整數轉為字串:數字+‘0’=相應字元 /***********************************************整數轉為字串**********************************************/ #inclu
C語言 將十六進制字符串轉為十六進制數 (二進制、十進制都適用)
include 字符串 %d style pre 指針 main 8進制 16進制 主要利用 long int strtol(const char *nptr,char **endptr,int base); 函數 函數說明: 參數base範圍從2至36,或0。參數b
[流暢的 C]C語言將結構體轉化為字串
[流暢的 C] C語言將結構體轉化為字串 Overview 思路 直接使用 memcpy 之類的是不可以的。所以最好的做法就是定義結構體的時候就實現對字串的轉換。 就像 Python 的 __str__ 一樣。 (不好意思,博主雷打不動轉python!信仰
C語言將十進位制整數輸出為八進位制和十六進位制
方法一: 直接使用控制字串 %o 八進位制 %x %X 十六進位制 方法二: 函式 char *itoa(int value, char *string, int radix) 返回值型別
C語言將10進位制轉為2進位制
第一種方法: #include<stdio.h> void dectobin(int n); int main() { int x=0; scanf("%d",&x);//只能正數 dectobin(x); pri
C語言將字符串轉換成對應的數字(十進制、十六進制)【轉】
字符串表 .com 表示 == 還需要 ref lower href tar 轉自:http://wawlian.iteye.com/blog/1315133 問題1:講一個十進制數字的字符串表示轉換成對應的整數。舉例:將“1234”轉換成整
【C語言】輸入一個整數,求它的原碼,反碼,補碼值
補碼 while src info idt IV com scan -- 1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int m,n,a[10],i=0,y[
C語言小結--求一個整數中bit位為1的個數
最近開發需要將一個數據做奇偶校驗,首先就是要計算出這個資料中bit位為1的個數,有以下幾種演算法可以達到要求: 1 方法1 我直接上程式碼,然後分析。 uint16_t get_one_in_data_1(uint16_t data) { uint16_t n = 0
c語言 將一個數組中的奇數和偶數分開放在一起
在一個數組中的元素大多奇數和偶數是混在一起的,而將陣列中元素奇數和偶數分開存放則是我們要解決的問題。 將奇數和偶數分開存放然後打印出來的思路是先建立兩個空間,將奇數和偶數分別存放起來,然後
【C語言】字串處理自定義函式
1、字串求長度 #include <stdio.h> int Mystrlen1(const char *str) { int i=0; while(*(str++)!='\0') { i++; } return i; } int Mystrlen2(cons
C語言實現字串英文字母大小寫的轉換
題目: 輸入一串字串,將其中的大寫字母換成小寫,小寫字母換成大寫輸出。例如輸入abcdefghijklmnopq,輸出ABCDEFGHIJKLMNOPQ 思路: 大寫字母轉換為小寫字母+32,小寫字母轉換為大寫字母-32;可以用for迴圈+陣列形式完成,也可利用while迴圈完成,我選擇了更容易理解的w
詳解C語言在字串的指定位置插入字元
問題分析 在字串S的所有數字字元前加一個$字元,可以有兩種實現方法。方法一:用串S拷貝出另一個串T,對串T從頭至尾掃描,對非數字字元原樣寫入串S,對於數字字元先寫一個$符號再寫該數字字元,最後,在S串尾加結束標誌。使用此方法是犧牲空間,贏得時間。方法二:對串S從頭至尾掃描,當遇到數字字元時,從該字元至串
C語言-演算法-字串
字串操作 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> //字串移位包含問題,比如AABCD前兩位AA移到尾部後BCDAA包含CDA
c語言 將記憶體中資料以二進位制形式寫入檔案 檔案中的資料表現形式
最近有在寫關於將記憶體中的資料寫入檔案的程式,當程式執行後,卻發現檔案中的位元組資料有些難以理解。思考後發現了其中的道理。 程式碼如下: #include<stdio.h> #include<stdlib.h> struct BlockInfo { bool is