c - 我尝试将字符串传递给一个简单的转换函数,但该函数只获取第一个字符
问题描述
该conversion
函数应该接收一个字符串(在这种情况下是一个颜色)并将其与另一个字符串(每种可能的颜色)进行比较,然后返回一个与该颜色相关的数字。
这是简单的代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int conversion(char colour)
{
printf("\n %s \n", colour);
if (!(strcmp(&colour, "red")))
return 0;
else if (!(strcmp(&colour, "orange")))
return 1;
else if (!(strcmp(&colour, "yellow")))
return 2;
else if (!(strcmp(&colour, "green")))
return 3;
else if (!(strcmp(&colour, "blue")))
return 4;
else if (!(strcmp(&colour, "white")))
return 5;
else if (!(strcmp(&colour, "black")))
return 6;
else return -1;
}
int main(int argc, char *argv[])
{
char colour = "red";
int n;
n = conversion(colour);
printf("\n %d \n", n);
return 0;
}
当我编译它时,我收到这些警告
prova.c:7:21: warning: format specifies type 'char *' but the argument has type
'char' [-Wformat]
``` printf("\n %s \n", colour);
~~ ^~~~~~
%c```
prova.c:27:7: warning: incompatible pointer to integer conversion initializing
'char' with an expression of type 'char [4]' [-Wint-conversion]
``` char colour = "red";
^ ~~~~~ ```
char colour = "red";
^ ~~~~~
在我看来,该函数仅获取指定格式的第一个字符原因。我该如何解决?
解决方案
char
只能容纳一个字符。您必须使用数组char
来处理字符串。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int conversion(const char* colour)
{
printf("\n %s \n", colour);
if (!(strcmp(colour, "red")))
return 0;
else if (!(strcmp(colour, "orange")))
return 1;
else if (!(strcmp(colour, "yellow")))
return 2;
else if (!(strcmp(colour, "green")))
return 3;
else if (!(strcmp(colour, "blue")))
return 4;
else if (!(strcmp(colour, "white")))
return 5;
else if (!(strcmp(colour, "black")))
return 6;
else return -1;
}
int main(int argc, char *argv[])
{
char colour[] = "red";
int n;
n = conversion(colour);
printf("\n %d \n", n);
return 0;
}
推荐阅读
- python - 运行 collectstatic 命令时出现权限被拒绝错误
- c++ - C++ 不能链接到前缀为 __imp_ 的符号
- gnuplot - 如何使用gnuplot导入具有固定列宽的数据?
- point-cloud-library - 如何使用 pcl 的聚类方法来聚类 6d 数据,例如 Eigen::Matrix
- java - 可展开的 listView 行项目不连续显示
- git - 如何防止git自动使用其他账户?
- mysql - MySQL 查询 - 一次查询中的加法、计数和除法
- c++ - 在给定字符串中查找子字符串
- javascript - 如何从外部 JavaScript 检索 id 文本?
- python - 给定一组数字,找出其中最长的算术级数的长度