C 如何解决将字符串转换为int时的编译错误?
我编写了以下C程序: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
#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
或simpleint
转换,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;
}