Я хочу использовать первый символ строки указателя.Функция C для заглавной буквы первого символа строки указателя
Например, вход: джон Выход: Джон
я могу сделать это с массивами (s[0] = toUpper(s[0])
, но есть способ сделать это с указателями?
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define MAX 30
int transform(char *s)
{
while (*s != '\0')
{
*s = toupper(*s);
s++;
}
return *s;
}
int main()
{
printf("String: ");
char *s[MAX];
getline(&s,MAX);
transform(s);
printf("Transformed char: %s", &s);
}
int getline(char *s, int lim)
{
int c;
char *t=s;
while (--lim>0 && (c=getchar())!=EOF && c!='\n') *s++=c;
*s='\0';
while (c!=EOF && c!='\n')
c=getchar();
return s-t;
}
Этот код превращает всю строку в верхний регистр.
Почему вы перебираете указатель на один символ? – Jacobr365