我想大寫指針字符串的第一個字符。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