我有一串数字,例如"123456789",我需要提取它们中的每一个以在计算中使用它们.我当然可以通过索引访问每个char,但是如何将其转换为int?
我查看了atoi(),但它需要一个字符串作为参数.因此,我必须将每个char转换为字符串,然后在其上调用atoi.有没有更好的办法?
我有一系列字符,如:
char bytes[8]={2,0,1,3,0,8,1,9}
Run Code Online (Sandbox Code Playgroud)
我想从下面的数组中获取前四个字符,并将它们放入一个新的整数变量中.我怎样才能做到这一点?我试图改变他们,但这种逻辑不起作用.任何的想法?谢谢.
示例:从此数组中获取:年月日
char bytes[8]={2,0,1,3,0,8,1,9}
int year = 2013 ...... month = 8 ............ day = 19
Run Code Online (Sandbox Code Playgroud) Brian Kernighnan在他的"用C编程"一书中说
根据定义,字符只是小整数,因此char变量和常量与算术表达式中的int相同.
这是否意味着我们可以从int中减去char变量?
我写了一小段代码:
#include <stdio.h>
main()
{
int a ;
int c;
a = 1;
c = 1 - '0' ;
printf("%d", c);
}
Run Code Online (Sandbox Code Playgroud)
但它给我输出= -47 ...
那是什么我做错了?我指定的变量是否具有正确的类型?
我正在向 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) 所以我有一个这样的字符串:"MULTR12"
我想把'1'和'2'作为两个单独的整数.我该怎么做呢?以前,我简单地说:
char *string = "MULTR12";
val = string[5];
Run Code Online (Sandbox Code Playgroud)
但是我得到一个非常奇怪的val值而不是1,就像我想要的那样.有人可以帮忙吗?谢谢!