㈠ 在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));
}