Я только начал изучать указатели, и после того, как много добавления и удаления *
S мой код для преобразования введенной строки в верхний регистр, наконец, работает ..Передача строки с помощью функции программирования (C)
#include <stdio.h>
char* upper(char *word);
int main()
{
char word[100];
printf("Enter a string: ");
gets(word);
printf("\nThe uppercase equivalent is: %s\n",upper(word));
return 0;
}
char* upper(char *word)
{
int i;
for (i=0;i<strlen(word);i++) word[i]=(word[i]>96&&word[i]<123)?word[i]-32:word[i];
return word;
}
Мой вопрос , при вызове функции, которую я отправил word
, которая является указателем, поэтому в char* upper(char *word)
почему мне нужно использовать *word
? Является ли это указателем на указатель? Кроме того, char*
есть потому, что он возвращает указатель на символ/строку вправо? Просьба разъяснить мне, как это работает.
Я смущен, что вы просите. Вы спрашиваете, почему это верхний (char * word), а не верхний (char word)? – Corbin
функция upper запрашивает указатель как параметр, и вы указываете указатель (слово). насколько я знаю, это правильный путь. –
Чтобы устранить путаницу, измените имя параметра 'word' на' upper' или локальную переменную 'word' в вашем коде. – Mat