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

字元串轉數字c語言不用庫函數

發布時間: 2022-04-28 04:04:33

㈠ 在c語言中 不用string函數的情況下 如何從字元串轉換成數字啊 是減0還是減/0 啊 還有/0

不用string函數,整個字元串一下子轉換不了數字,需要逐個轉換才行。
減'0'是在轉換過程中減。

㈡ 求C語言將十六進制字元串轉換為整型int的函數源代碼,要求不能用庫函數

#include "stdio.h"
#include "string.h"

long DEC( char *HEX );
int Ture( char *HEX );

void main( void )
{
char HEX[30];
int ture;
clrscr();

do
{
printf("\nPlease input a HEX number blow : \n");
gets( HEX );
if( ture=Ture(HEX) )
printf("\nWrong ! Try Again !");
}while( ture );

printf("\nThe Result is :");
printf(" HEX (%s) = DEC (%ld) ",HEX,DEC(HEX));

}

long DEC( char *HEX )
{
long decvalue=0;
int i=0;

for( i=0 ; i<strlen(HEX) ; i++)
{
if(*(HEX+i)>='A'&&*(HEX+i)<='F')
{
decvalue*=16;
decvalue+=*(HEX+i)-'A'+10;
}
if(*(HEX+i)>='0'&&*(HEX+i)<='9')
{
decvalue*=16;
decvalue+=*(HEX+i)-'0';
}
}

return decvalue;
}

int Ture( char *HEX )
{
int i;
int flag=0;

for( i=0 ; i<strlen(HEX) ; i++ )
{
if((*(HEX+i)>='a')&&(*(HEX+i)<='f'))
{
*(HEX+i)+='A'-'a';
flag++;
}
else if((*(HEX+i)>='A')&&(*(HEX+i)<='F'))
{
flag++;
}
else if((*(HEX+i)>='0')&&(*(HEX+i)<='9'))
{
flag++;
}
else
{
flag--;
}
}

return(strlen(HEX)-flag);
}

你也可以把Ture和DEC合在一塊

也可以不要Ture

㈢ C語言怎麼把字元串轉換為可以用於計算的數字

(1)使用常用標准函數庫stdlib當中的字元串轉換函數,可以把各種類型的字元串轉換為相應類型的數字。

(2)使用輸入輸出標准函數庫stdio當中的sscanf函數。

㈣ C語言 字元串反轉函數(不使用庫函數)

char *revstr(char *str, size_t len)
{

char *start = str;
char *end = str + len - 1;
char ch;

if (str != NULL)
{
while (start < end)
{
ch = *start;
*start++ = *end;
*end-- = ch;
}
}
return str;
}

㈤ C語言將一數字字元串轉化成整數(不得調用C語言提供的將字元串轉化成整數的函數)

下面程序測試過了沒有問題:
char *p;
int i,j,l,flag;
unsigned long n = 1;
unsigned long new;
l = strlen(str);
p =&str[0];
for(i = 0;i <l;i++)
{
if(*p ='-' )
{
flag = 0;
p++;
continue;
}
for(j = 0;j < l -i -1;j++)
{
n*=10;

}
new+=(*p - 48)*n;
n = 1;
p++;
}
if(flag ==0)
{
new = 0 - new; //這里簡單但很實用正數轉負數
}
return new;

㈥ 將數字字元串轉換為數字,不用字元串轉換函數,求c語言代碼

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intgetnDec(char*p,int*q){
inti,j,k,x,n;
for(k=i=0;p[i];i++)
if(p[i]>='0'&&p[i]<='9'){
for(x=0,n=i+6,j=i;j<n;j++)
if(p[j]>='0'&&p[j]<='9')
(x*=10)+=p[j]-'0';
elsebreak;
i=j-1;
q[k++]=x;
}
returnk;
}
voidmysort(int*p,intn){
inti,j,k;
for(i=0;i<n;i++){
for(k=i,j=k+1;j<n;j++)
if(p[k]>p[j])k=j;
if(k!=i){
j=p[k];
p[k]=p[i];
p[i]=j;
}
}
}
voidmyout(int*p,intn){
inti;
for(i=0;i<n;printf("%d",p[i++]));
}
intmain(void){
charstr[]="ab1di45,.";
intd[50],n;
n=getnDec(str,d);
mysort(d,n);
myout(d,n);
printf(" ");
return0;
}

㈦ C語言如何把一個字元串轉換成數字

C語言中,可以使用atoi函數將字元串轉換為數字,如atoi("123")可以得到數字123。

atoi (表示 ascii to integer)是把字元串轉換成整型數的一個函數,應用在計算機程序和辦公軟體中。int atoi(const char *nptr) 函數會掃描參數 nptr字元串,會跳過前面的空白字元(例如空格,tab縮進)等。

如果 nptr不能轉換成 int 或者 nptr為空字元串,那麼將返回0。特別注意,該函數要求被轉換的字元串是按十進制數理解的。atoi輸入的字元串對應數字存在大小限制(與int類型大小有關),若其過大可能報錯-1。

(7)字元串轉數字c語言不用庫函數擴展閱讀:

C語言中數字轉化為字元串的方案:

使用sprintf函數來實現,如sprintf("%d", 123)可以得到字元串"123"。

sprintf指的是字元串格式化命令,主要功能是把格式化的數據寫入某個字元串中。sprintf 是個變參函數。使用sprintf 對於寫入buffer的字元數是沒有限制的,這就存在了buffer溢出的可能性。解決這個問題,可以考慮使用 snprintf函數,該函數可對寫入字元數做出限制。

㈧ C語言如何把一個字元串轉換成數字

C語言中,可以使用atoi函數將字元串轉換為數字,如atoi("123")可以得到數字123。

atoi (表示 ascii to integer)是把字元串轉換成整型數的一個函數,應用在計算機程序和辦公軟體中。int atoi(const char *nptr) 函數會掃描參數 nptr字元串,會跳過前面的空白字元(例如空格,tab縮進)等。

如果 nptr不能轉換成 int 或者 nptr為空字元串,那麼將返回0。特別注意,該函數要求被轉換的字元串是按十進制數理解的。atoi輸入的字元串對應數字存在大小限制(與int類型大小有關),若其過大可能報錯-1。

(8)字元串轉數字c語言不用庫函數擴展閱讀:

C語言中數字轉化為字元串的方案:

使用sprintf函數來實現,如sprintf("%d", 123)可以得到字元串"123"。

sprintf指的是字元串格式化命令,主要功能是把格式化的數據寫入某個字元串中。sprintf 是個變參函數。使用sprintf 對於寫入buffer的字元數是沒有限制的,這就存在了buffer溢出的可能性。解決這個問題,可以考慮使用 snprintf函數,該函數可對寫入字元數做出限制。

㈨ 請高手幫忙 C語言中不用庫函數怎樣將字元型數字轉化成整型數字

你可以將字元型的數字與字元0做減法,得到的就是你要的整形數字了。比如下面這個例子就是將字元1變成整數1
char c = '1';
printf("%d\n",c - '0');
不知道你要的是不是這樣的效果

㈩ C語言 字元串轉數字 急急急

#include<stdio.h>
#include<string.h>
#include<math.h>
int tran16to10(char *s)
{
int i,z=0,j;
j=strlen(s);
for(i=0;i<j;i++)
{
if(s[i]>='A'&&s[i]<='F')
z=z+(s[i]-'A'+10)*(pow(16,j-1-i));
if(s[i]>='a'&&s[i]<='f')
z=z+(s[i]-'a'+10)*(pow(16,j-1-i));
if(s[i]>='0'&&s[i]<='9')
z=z+(s[i]-'0')*(pow(16,j-1-i));

}
return z;
}

void main()
{
char s1[10],s2[10];
printf("請輸入兩個十六進制數\n");
gets(s1);
gets(s2);
printf("%d\n",tran16to10(s1)+tran16to10(s2));
}