我想大写指针字符串的第一个字符。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