當前位置:首頁 » 編程語言 » c語言chartoint庫函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言chartoint庫函數

發布時間: 2022-11-18 05:10:33

1. c語言中數字字元串中的數字轉化成一個個數字並存入整形數組

/**************************************************
* 函數名: CharToInt
* 參數:
* 形參:
* intString: 保存整數的字元串
* 返回值:
* int: 成功返回轉換後的整數,否則返回0
* 功能:
* 把字元串轉換成整數
* 例如:
* "1200" => 1200
* 作者: sdh
* 編寫明細:
* 完成時間 2009-10-23 作者名 sdh
**************************************************/

int CharToInt(char* intString)
{
int i =1;
int j =1;
int b =0;
int a =strlen( intString );

for( i=0 ;i<a ;i++)
{
b = b+(intString[a-i-1]-48)*j;
j=j*10;
}
return b;
}

這個函數只能將一個字元串中的數字字元轉換成一個數字。如果多個數字用空格隔開,我想是不是可以先記錄空格的位置,然後求出每個字元函數在數組中的位置,比如b[]="12 21 -2 -3 2 3 6 100 ",-2的位置就是從b[6]到b[7],然後將每個數字字元串當做一個小數組調用我上面的那個函數。

2. C語言 如何將char 單字元型轉成int型

chara='1';
charbase='0';
inti=(int)a-(int)base;
//可以簡單點寫一個宏
#defineATOI(X)((X)-30)

原理就是字元型實際是存儲的整數,具體數值可查ASCII表,而數字0-9的ASCII是相鄰的,數字字元通過減去基礎的'0'的ASCII碼值,就能得到對應的字元代表的實際數字,然後賦值給其他數字型變數即可。

下面是ASCII表

3. C語言中 怎麼轉換char到int

如:
char a = 'A'
那麼執行如下:
int b = a;
那麼此時的b = 65,就是把char轉化為int了。將int轉化為char方法同上~~但是要注意的是內存的一出問題~最好別做int轉化為char,因為在當今64位系統下,char是1個位元組,而int是2個位元組~從2個位元組轉化為一個位元組會出現內存泄漏~~但是從1個位元組轉化為2個位元組是沒有問題的,只是有內存浪費~

4. C語言中 怎麼轉換char到int

啥意思,如果是簡單的轉換,上樓的已經說得很詳細了
如果是一個字元串的轉換,比如「1234」這個字元串的轉換,那麼有函數
atoi(),你自己google一下這個函數的用法,很簡單的。
int atoi ( const char * str ); //Convert string to integer

5. c語言把char轉換成int

你想表達的是將16進制的字元串轉換為int型嗎?如果是這樣,可以這樣寫:
int HexStrToInt(char *str)
{
int Ret = 0;
while(*str != 0)
{
if(*str >= '0' && *str <= '9')
Ret = (Ret << 4) + *str - '0';
else if(*str >= 'a' && *str <= 'f')
Ret = (Ret << 4) + *str - 'a' + 10;
else if(*str >= 'A' && *str <= 'F')
Ret = (Ret << 4) + *str - 'A' + 10;
else
return -1;
str++;
}
return Ret;
}
調用這個函數,就可以返回int型的值了。比如int r = HexStrToInt("10fa");

6. c語言把char轉換成int

#include <stdlib.h>

int atoi(const char *nptr);

long atol(const char *nptr);

long long atoll(const char *nptr);

long long atoq(const char *nptr);

(6)c語言chartoint庫函數擴展閱讀:

反之int 轉 char *

在stdlib.h中有個函數itoa()

itoa(i,num,10);

i 需要轉換成字元的數字

num 轉換後保存字元的變數

10 轉換數字的基數(進制)10就是說按照10進制轉換數字。

還可以是2,8,16等等你喜歡的進制類型

原形:char *itoa(int value, char* string, int radix);

實例:

#include "stdlib.h" #include "stdio.h" main()

{

int i=1234;

char s[5];

itoa(i,s,10);

printf("%s",s);

getchar();

}

7. c語言char型字元串轉換成int型字元串

1、把char型轉換成int類型。

for(int i=0;i&lt;str.length();i++)

{

char temp_char=str.charAt(i);

//把字元轉換成數字方法一

int temp_int=temp_char-'0';

//把字元轉換成數字方法二

int temp_int=Integer.parseInt(String.valueOf(temp_char));

}

第一種辦法:通過charAt(i),把字元串的每位變成char型,然後用當前字元減去字元0(temp_char-'0'),得到當前字元的int值。

第二種辦法:把字元再轉成字元串,然後再強制轉換成int型。

2、把字元串拆分成一位一位的

第一種方法:循環後charAt(i);

注意:charAt(i)得到的是字元串對應的每位字元,可是不能直接轉成int,轉成int依然是ASCII值。

第二種方法:char[]temp=str.toCharArray();

注意:char[]里的內容不是字元串的每位字元,而是每位字元的ASCII值。

具體如下:

package cjl;

import java.util.Scanner;

/**

一維碼有一種編碼是ean13,是一串13位數字。其中第13位是校驗碼,作用是校驗前面12個數字是否正確。

校驗方法如下:

1、前12位數字從左起,將所有的奇數位相加得出一個數a,將所有的偶數位相加得出一個數b

2、將數b乘以3再與a相加得到數c

3、用10減去數c的個位數,如果結果不為10則校驗碼為結果本身,如果為10則校驗碼為0

請在控制台任意輸入一個12位數字,然後輸出校驗碼

author ff

/

public class CheckCode{

public void checkCode(String str)

{

int checkCode=0;

int a=0;//奇數位的和

int b=0;//偶數位的和

for(int i=0;i&lt;str.length();i++)

{

char temp_char=str.charAt(i);

//把字元轉換成數字方法一

int temp_int=temp_char-'0';

//把字元轉換成數字方法二

//int temp_int=Integer.parseInt(String.valueOf(temp_char));

//System.out.println("temp_char="+temp_char);

//System.out.println("temp__int="+temp_int);

if((i+1)%2==0)//偶數位

{

b+=(int)temp_int;

}

else//奇數位

{

a=a+(int)temp_int;

}

}

int c=a+b*3;

int c_gw=c%10;

int d=10-c_gw;

//System.out.println("a="+a+"b="+b+"c="+c+"c_gw="+c_gw+"d="+d);

if(d==10)

{

checkCode=0;

}

else

{

checkCode=d;

}

System.out.println("checkCode="+checkCode);

}

public void Input()

{

while(true){

Scanner scanner=new Scanner(System.in);

System.out.println("請輸入一個12位的數字。。。。。。");

String str=scanner.nextLine();

if((str.length()==12)&&(str.matches("[0-9]+")))

{

checkCode(str);

break;

}

}

}

/**

param args

/

public static void main(String[]args){

CheckCode codeVo=new CheckCode();

codeVo.Input();

}

}

運行結果:

請輸入一個12位的數字。。。。。。

111111111111

checkCode=6

(7)c語言chartoint庫函數擴展閱讀:

char是計算機編程語言(c、c++、java、VFP等)中可容納單個字元的一種基本數據類型。

char是一個數據類型,作用是定義字元型變數(單個或是字元串)。

比方int是整形數據,int a=3;這里int是類型,a是整型變數,3是賦值;

char s='A';char是字元類型,s是字元型變數,A是賦值給變數s;

char s[]="c program";char是字元類型,s[]是字元型數組,"c program"是賦給數組的值。

8. 如何把char變成int C語言

C語言中char類型本身就是整型類數據
變數
,可以直接賦值給int變數
char佔一個
位元組
內存空間,可表示的
有符號數
為-128~127,無
符號
數0~255
C語言中
字元
是按其ascii值進行存儲的,如,字母'a',其實際存儲在
內存
中的數據為97,只是在輸出時,因格式串的不同,表現出來的形式不同:
printf("%c",
'a'
);
//按字元輸出,顯示a
printf("%d",
'a');
//按整數輸出,顯示97
printf("%x",
'a');
//按16進制輸出,顯示61
int佔四位元組內存空間,char賦值給int,系統自動進行高位補符號位,如,正數前補0,負數前補1.

9. C語言中重新實現庫函數

fgets是從文件讀取,getchar是從輸入讀取,兩個還是有區別的
懷疑是gets
如果一定要用fgets的話,那麼可以先用freopen重定向輸入,來使fgets和getchar的定向相同
以下用gets實現或者被實現
含測試函數main

#include <stdio.h>
int str_to_int(char *str)
{
int sign = 1;
int ret = 0;
char *p;
p = str;
if(*p == '+') p++;
else if(*p == '-') sign = -1, p ++;
while(*p)
{
if(*p >= '0' && *p <= '9')
ret = ret * 10 + (*p - '0');
else break;
p ++;
}

return sign * ret;
}
int get_int_with_getchar()
{
char a[20] = {0};
int i = 0;
while(i<19)
{
a[i] = getchar();
if(a[i] == '\n')
break;
i ++;
}
a[i] = 0;
return str_to_int(a);
}
int get_int_with_gets()
{
char a[20] = {0};
gets(a);
return str_to_int(a);
}
void gets_with_getchar(char *str)
{
int i = 0;
if(str == NULL) return;
do
{
str[i] = getchar();
}while(str[i++] != '\n' );
}
char *do_strchr(char *src, const char c)
{
char *p = src;
while(*p && *p!= c) p ++;
if(*p != c) return NULL;
return p;
}
int do_isdigit(char c)
{
return c <= '9' && c >= '0';
}
int do_isalpha(char c)
{
return (c <= 'Z' && c >= 'A') || (c <= 'z' && c >= 'a');
}
int main()
{
int a;
char test[100] ;

a = get_int_with_getchar();
printf("get_int_with_getchar = %d\n", a);
a = get_int_with_gets();
printf("get_int_with_gets = %d\n", a);
gets_with_getchar(test);
printf("gets_with_getchar = %s\n", test);
printf("do_strchr %s %s\n", do_strchr(test, 'a'), do_strchr(test, 'b'));
printf("do_isdigit = (%d,%d) \n", do_isdigit('1'), do_isdigit('a'));
printf("do_isalpha = (%d,%d) \n", do_isalpha('1'), do_isalpha('a'));
}