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