'char'之前的预期表达式

时间:2013-09-27 14:18:34

标签: c arrays pointers char fgets

我正在为我的一个CSC课程完成这项任务而努力。我正在用我的名字制作一个角色阵列(即John Doe)。我需要将我的字符数组的指针传递给一个函数,该函数输出存储在字符数组中的字符数。然后我需要函数也将这个整数返回给我的main函数。

如果有人愿意帮助我提前

  • 我需要完全向后拼写。即(eoD nhoJ)

  • 我需要告知用户我的数组中哪个元素名称中的空格。我也需要返回这个值。

  • 然后最后但并非最不重要的是我需要撤销名称,即(Doe John)

请帮我解决这个问题。我只发布了我实际设法弄清楚的任务部分。谢谢大家。

#include <stdio.h>
#include <string.h>

int main ()
{
    char name [25]={'\0'};

    fgets(name,sizeof(name),stdin); 

    printf("You Entered: %s     \n", name);

    printf("There are %u characters. \n", strlen(char * name));
}

2 个答案:

答案 0 :(得分:2)

strlen(char * name) ==> strlen(name)  

在计算长度

时,不应在字符串前使用char *

修改

如果您打算为某些练习编写自己的功能。

声明功能

 unsigned int my_strlen(char *); //argument needed is character pointer  

并定义

unsigned int my_strlen(char *str) 
      {   
        //find length..  
         return length;
      }

函数调用

   printf("There are %u characters. \n", my_strlen(name)); // passing starting address of character array to a function. 

此处也不应在名称前使用char *

您可以在Google上轻松找到所有问题。只是做你能找到的简单搜索。

如果你想亲自去做。你需要阅读c教程。

答案 1 :(得分:0)

变化:
    printf(&#34;有%u个字符。\ n&#34;,strlen(char * name));

按:
    printf(&#34;有%u个字符。\ n&#34;,strlen(name));