Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何解决将字符串转换为int时的编译错误?_C - Fatal编程技术网

C 如何解决将字符串转换为int时的编译错误?

C 如何解决将字符串转换为int时的编译错误?,c,C,我编写了以下C程序: #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char a[100]; printf("Enter the string"); scanf("%s",a); int i = 0; if(atoi(a[i]) == 2) { printf("Hi"); } puts(a); return 0; } 请帮助我解决此错误。您将a声明为i

我编写了以下C程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() 
{
char a[100];
printf("Enter the string");
scanf("%s",a);
int i = 0;
if(atoi(a[i]) == 2)
{
    printf("Hi");
}
puts(a);
return 0;
}

请帮助我解决此错误。

您将
a
声明为
int
数组,而它应该是
char*
,这与转换代码无关,而是变量声明

其次,为了将字符转换为int,您应该使用
ord
或simple
int
转换,
atoi
用于转换整个
string
,因此应该整体调用
a
atoi(a)

格式%s需要一个字符串参数。改变

int a[100];


现在就使用这个工作代码

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() 
{
char a[100];
printf("Enter the string");
scanf("%s",a);
int i = 0;
if(atoi(&a[i]) == 222)
{
   printf("Hi");
}
puts(a);
return 0;
}
#包括
#包括
#包括
int main()
{
chara[100];
printf(“输入字符串”);
scanf(“%s”,a);
int i=0;
if(原子(&a[i])==222)
{
printf(“Hi”);
}
第(a)款;
返回0;
}
atoi(a[i])
给出一个错误,因为它需要一个指针变量,并且
atoi
每次获取一个完整的字符串

如下所示声明变量:

char *ch;//then pass in atoi
atoi(a)==2
atoi(*str)
它解释str指向的字节字符串中的整数值。

我的输入字符串是“222”,我想用“2”检查这个字符串中的第一个字符

#包括
int main(){
chara[100];
printf(“输入字符串:”);
scanf(“%99s”,a);
如果(a[0]=“2”){
printf(“Hi”);
}
第(a)款;
返回0;
}

一段时间内,阅读各种各样的人的期望可能会获得可观的回报。将atoi(a[i])更改为
atoi(a)
。请参见下面的答案对于稍后的读者,代码的第一个版本是
inta[100]
代替
字符a[100],但该代码在5分钟计时器过期之前已更改/修复,因此它不会显示在编辑日志中(但答案针对的是原始代码)。我做了一些更改。我只将“222”替换为“2”。现在告诉我应该做什么变量I,在任何地方都没有声明!我做了一些相应的修改,并再次出错。请看一看答案的第二部分,它应该解决剩下的问题。我想使用a中的第一个字符作为atoi()的参数使用此语句,如果(atoi(a)==2)否,则它不起作用。我的输入字符串是“222”,我想用“2”检查这个字符串中的firsh char。
char a[100];
atoi(a[i]) == 222
atoi(a) == 222
 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() 
{
char a[100];
printf("Enter the string");
scanf("%s",a);
int i = 0;
if(atoi(&a[i]) == 222)
{
   printf("Hi");
}
puts(a);
return 0;
}
char *ch;//then pass in atoi
atoi(a)==2
#include <stdio.h>

int main(){
    char a[100];
    printf("Enter the string : ");
    scanf("%99s", a);
    if(a[0] == '2') {
        printf("Hi ");
    }
    puts(a);
    return 0;
}