可能重复:
如何将单个char转换为int 字符转换为
C中的整数
任何人都可以告诉我如何转换char为int?
char c[]={'1',':','3'};
int i=int(c[0]);
printf("%d",i);
Run Code Online (Sandbox Code Playgroud)
当我尝试这个它给49.
我正在经历一些练习问题,我看到了这段代码:
#include <stdio.h>
#include <string.h>
int main(void) {
char* s = "357";
int sum = 0;
int i = 0;
for (i = 0; i < strlen(s); i++) {
sum += s[i] - 48;
}
printf("Sum is %d", sum);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释代码的作用,尤其是48部分的减法吗?
我已经制作了一个程序,将输入到字符串中的数字转换为像do一样的整数atoi,但它给出了错误的输出.
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
void main(void)
{
static int sum;
int i,x,y,z;
char string[10];
printf("Enter a string:\n");
gets(string);
x=strlen(string);
for(i=0; ;i++)
{
if(string[i]=='\0')
{
break;
}
y=pow(10,i);
z=string[x-i+1]*y;
sum+=z;
}
printf("%d",sum);
getch();
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何将单个char转换为int
我正在开发一个程序,需要从字符串中提取整数,然后添加到其他整数.
IE输入"123456789".我可以拔出第5个字符'5',但是我需要将它添加到另一个int中.如果我尝试将其转换为int,则返回ASCI值.有没有办法将char转换为相应的int?
这个问题与语言无关,但受到这些c/c ++问题的启发.
假设数字(0123456789)的字符在所有文本编码中都是有争议的,这是否安全?
也就是假设这样做是安全的
'9'-'8' = 1
'9'-'7' = 2
...
'9'-'0' = 9
Run Code Online (Sandbox Code Playgroud)
在所有编码?
我期待着对这个问题的明确回答:)
谢谢,
更新:好的,让我将所有编码限制为与ASCII和/或EBCDIC以及之后的任何旧编码.Sandscrit我并不那么担心...
我试图减去每个ASCII字符被视为十进制数字的字符串.例如:
"1000000000001" - "0100000000001" = "900000000000"
Run Code Online (Sandbox Code Playgroud)
如果我的函数原型如下所示,我将如何开始执行此操作:
char* get_sub(char* a, char* b)
我正在向 C 程序传递一个参数:
程序名称 1234
int main (int argc, char *argv[]) {
int length_of_input = 0;
char* input = argv[1];
while(input[length_of_input]) {
//convert input from array of char to int
length_of_input++;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够将传递给函数的参数的每个数字作为整数单独使用。atoi(input[]) 抛出编译时错误。
此代码无法编译:
while(input[length_of_input]) {
int temp = atoi(input[length_of_input]);
printf("char %i: %i\n", length_of_input, temp);
length_of_input++;
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何将单个char转换为int
好吧,我正在做一个基本的程序,它处理一些输入,如:
2 + 2
所以,我需要添加2 + 2.
我做了类似的事情:
string mys "2+2";
fir = mys[0];
sec = mys[2];
Run Code Online (Sandbox Code Playgroud)
但现在我想将"fir"添加到"sec",所以我需要将它们转换为Int.我试过"int(fir)"但没有奏效.