2013-09-27 3 views
-1

내 CSC 수업 중 하나에 대해이 과제를 수행하는 데 어려움을 겪고 있습니다. 내 이름 (즉, Doe)에서 문자 배열을 만들고 있습니다. 내 문자 배열 포인터를 문자 배열에 저장된 문자 수를 출력하는 함수에 전달해야합니다. 그런 다음이 정수를 다시 내 주요 함수로 반환하는 함수가 필요합니다.'char'이전에 예상되는 표현

사람이 내가 완전히 거꾸로 철자 필요

  • 고급 나를 도와주고 싶어합니다. 즉, (0123)

  • 내 배열의 어느 요소를 이름에 알려야 할 필요가 있습니다. 나는 또한이 가치를 되돌려 줄 필요가있다.

  • 그런 다음 마지막으로 나는 이름 즉 (미상 존)

이 좀 도와주세요 반대해야합니다. 나는 실제로 알아낼 수 있었던 과제의 일부만 게시했습니다. 모두에게 미리 감사드립니다. 당신의 의도가 연습을 위해 자신의 함수를 작성하는 경우 길이를

편집

을 계산하는 동안

#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)); 
} 
+0

'strlen (name)'을 타입 이름없이 사용하십시오 –

+0

정확히 1, 2, 3 작업을 이해하지 못합니까? 스택 오버플로에서는 자신을 이해하지 못하는 것에 대한 코드 솔루션을 요구하는 것은 화제가 아닌 것으로 간주됩니다. 그래서 당신이 이것을 명확히하지 않는 한, 당신의 질문이 끝날 위험이 있습니다. – Lundin

+0

누군가 내 코드를 사용하여 예제를 줄 수 있기를 바랬습니다. 나는 아직도 이것을 배우는 학생이다. 내가 이해할 수없는 일을하는 법을 묻지 않으면 어떻게해야 배울 수 있습니까? – user2172993

답변

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

당신은 문자열 전에 숯불 *를 사용할 수 없습니다.

선언 기능

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 자습서를 읽어야합니다.

+0

하지만 포인터 배열을 전달해야하므로 포인터 위치를 얻기 위해 별표를 사용할 필요가 없습니까? – user2172993

+0

여기서 이름은 문자 배열입니다. strlen()을 사용하여 문자 배열의 길이를 찾으려면 배열 이름을 전달하면됩니다. 문자 배열은 포인터 배열과 다릅니다. strlen() 설명은 http://en.cppreference.com/w/c/string/byte/strlen을 참조하십시오. – Gangadhar

+0

"문자 배열의 길이를 찾기 위해 함수를 선언하고 싶을 수도 있습니다." –

0

변경 :
printf ("% u 문자가 있습니다. \ n", strlen (char * name));
by :
printf ("% u 문자가 있습니다. \ n", strlen (name));

관련 문제