int a2=strcmp("abc", "abc"); puts(a2);有什么问题
时间: 2023-08-31 15:30:07 浏览: 145
输入两个字符串,编一个程序实现strcmp()函数
### 回答1:
这段代码存在一个问题,即使用strcmp函数比较字符串后将返回一个整数值,而puts函数需要接收一个指向字符串的指针作为参数,因此在这里需要进行类型转换。
正确的代码应该如下所示:
```
int a2 = strcmp("abc", "abc");
printf("%d", a2);
```
其中,我们使用printf函数将整数值a2输出到控制台。
### 回答2:
在给定的代码中,使用了strcmp函数来比较两个字符串"abc"和"abc"。strcmp函数是用来比较两个字符串是否相等的函数,并且返回一个整数值作为结果。
根据strcmp函数的定义,如果两个字符串相等,返回值为0;如果字符串不相等,则返回一个非零值。在这种情况下,由于"abc"与"abc"是相等的,所以strcmp("abc", "abc")的返回值应该是0。
然后,使用puts函数来打印a2的值。然而,puts函数用于输出字符串,而不是整数。所以在此代码中,会出现问题。
为了解决这个问题,可以将a2的值先转换为字符串,然后再使用puts函数打印。或者可以使用其他的输出函数,如printf函数来打印a2的值。
修改后的代码示例:
int a2 = strcmp("abc", "abc");
printf("%d\n", a2);
这样就能够正确打印a2的值了。输出结果应该是0。
阅读全文