-3
나는 포인터를 사용하여 toupper와 tolower를 사용하는 방법을 알아 내려고하고있다. 나는 내가 옳은 길에 있다고 생각했다. 포인터를 대문자에 맞게 수정했지만 어떤 이유로 든 소문자에서는 작동하지 않습니다. 조언이 도움이 될 것입니다.toupper와 tolower with pointer
#include <stdio.h>
#include <ctype.h>
void safer_gets (char array[], int max_chars);
main()
{
/* Declare variables */
/* ----------------- */
char text[51];
char *s1_ptr = text;
int i;
/* Prompt user for line of text */
/* ---------------------------- */
printf ("\nEnter a line of text (up to 50 characters):\n");
safer_gets(text ,50);
/* Convert and output the text in uppercase characters. */
/* ---------------------------------------------------- */
printf ("\nThe line of text in uppercase is:\n");
while (*s1_ptr != '\0')
{
*s1_ptr = toupper(*s1_ptr);
putchar(toupper(*s1_ptr++));
}
/* Convert and output the text in lowercase characters. */
/* ---------------------------------------------------- */
printf ("\n\nThe line of text in lowercase is:\n");
while (*s1_ptr != '\0')
{
*s1_ptr = tolower(*s1_ptr);
putchar(tolower(*s1_ptr++));
}
/* Add carriage return and pause output */
/* ------------------------------------ */
printf("\n");
getchar();
} /* end main */
/* Function safer_gets */
/* ------------------- */
void safer_gets (char array[], int max_chars)
{
/* Declare variables. */
/* ------------------ */
int i;
for (i = 0; i < max_chars; i++)
{
array[i] = getchar();
/* If "this" character is the carriage return, exit loop */
/* ----------------------------------------------------- */
if (array[i] == '\n')
break;
} /* end for */
if (i == max_chars)
if (array[i] != '\n')
while (getchar() != '\n');
array[i] = '\0';
} /* end safer_gets */
"/ * ------------------ * /"이 같은 의견의 목적은 무엇입니까 ?? – bace1000
"작동하지 않음"으로 확장하십시오. 입력, 예상 출력 및 실제 출력은 무엇입니까? – kaylum
'toupper()'루프에서's1_ptr'을 수정하고'tolower()'루프를 위해 재설정하지 마십시오. – EOF