在Turbo C中将字符串转换为int

时间:2014-01-10 08:25:08

标签: turbo-c

美好的一天!我可以问一下如何在turbo C中将字符串转换为int。 例如:

void comp()
{
    FILE *fp;
    int i,x;
    long int deci;
    char bin[8];
    char *str=0;
    char buf[1024];

    fp=fopen("C:\enc.txt","w");

    printf("Enter a text: ");
    scanf("%[^\n]",str);
    init(str);

    for(i=0;i<128;i++)
    {
        if(code[i])
        {
            printf("'%c': %s\n",i, code[i]);
        }
    }

我在这里使用字符串制作二进制代码。

    encode(str, buf);
    deci=decimal(buf);
    printf("%li", deci);

    fprintf(fp,"%s",deci);

    fclose(fp);

}

这是函数decimal()

int decimal(long int decimal)
{
    int dc, power;
    power=1;
    ht=0;
    while(decimal>0)
    {
        dc+=decimal%10*power;
        decimal=decimal/10;
        power=power*2;
    }
    return dc;
}

感谢您的回复!

2 个答案:

答案 0 :(得分:2)

我假设您正在读取整数流作为字符串,并希望将它们转换为整数。

创建一个新的整数数组。运行循环并将每个字符转换为整数。

int *buf = new int[strlen(str)];
for(int i=0; i < strlen(str)-1; ++i)
{
       buf[i] = str[i] - '0';
}

在这里,您将所有整数数据存储到整数数组中。

编辑:

如果要将字符串存储为整数,

long long number = 0;
for(int i = strlen(str) - 2; i >= 0; --i)
{
        number *= 10;
        number += buf[i];
}

答案 1 :(得分:0)

我知道,我迟到了,但肯定会帮助别人。

使用 stdlib.h中提供的内置函数 atoi

#include <stdlib.h>
    char a[2]="10";
    int b = atoi(a) + 5;