【问题标题】:Passing String from Array to Function Pointer in C将字符串从数组传递到C中的函数指针
【发布时间】:2012-07-19 13:22:59
【问题描述】:

谁能帮我解决我看不到的代码问题。我有一个要显示的字符串数组。一个变量,它增加和减少并希望将字符串传递给函数。问题是我想要的整个字符串没有被传递

即ucMainMenu = 1 MenuString[1] = "TIME" DisplayString("TIME")

const char MenuString[6][8] = {"UNITS", "TIME", "DATE", "PRINT", "BTOOTH", "SERVICE"};

void main
{
   ucMainMenu++; //variable changing
   DisplayString(MenuString[ucMainMenu]);  //look up variable in array pass string to function
}

void DisplayString(char *cDisplayString)
{
 //do stuff with string
}

【问题讨论】:

  • 什么是问题所在?我们应该知道吗?
  • Arg 应该是const,更不用说其他更明显的遗漏了。
  • 另外你应该使用int main()作为你的主要方法的签名。
  • 发布实际代码,而不是近似值 - 以上甚至无法编译。
  • 确保您的 ucMainMenu 在递增和使用之前已初始化为适当的值。

标签: c arrays string function


【解决方案1】:

试试这个:

const char MenuString[6][8] = {"UNITS", "TIME", "DATE", "PRINT", "BTOOTH", "SERVICE"};

void DisplayString(const char *cDisplayString)
{
 //do stuff with string
    printf("%s", cDisplayString);
}

int main(int argc, char * argv[]){

    int ucMainMenu = 1;
    DisplayString(MenuString[ucMainMenu]);  //look up variable in array pass string to function

    getchar();

}

阅读 C 中的初始化here

希望对你有帮助!

【讨论】:

  • @Adey22 如果他们有帮助,请选择此或任何其他作为选定答案(绿色复选标记)。
【解决方案2】:

您可以尝试使用 const char* 指针 ...

void DisplayString( const char *cDisplayString)
{
   //do stuff with string
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多