gpt4 book ai didi

C 函数将指针字符串的第一个字符大写

转载 作者:行者123 更新时间:2023-11-30 20:55:07 25 4
gpt4 key购买 nike

我想将指针字符串的第一个字符大写。

例如输入:john输出:约翰

我可以用数组(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;
}

此代码将整个字符串转换为大写。

最佳答案

您的 transform 函数循环遍历整个字符串并在每个字符串上运行 toupper。只需在第一个字符上运行即可:

void transform(char *s)
{
*s = toupper(*s);
}

此外,您还可以在 main 中将 s 声明为指向 char 的指针数组。您只需要一个 char 数组:

int main()
{
printf("String: ");
char s[MAX];


getline(s,MAX); // don't take the address of s here

transform(s);
printf("Transformed char: %s", s); // or here

}

您还希望将 main 移动到文件末尾,以便在调用之前定义 getline

关于C 函数将指针字符串的第一个字符大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com