C 实现一个程序,给定一个人的名字,打印一个人的首字母
请有人帮我找到代码中的错误。 它们没有语法错误。 但在某个地方它是错误的,因为我没有得到我想要的输出。 函数get和toupper没有从库中实现C 实现一个程序,给定一个人的名字,打印一个人的首字母,c,toupper,C,Toupper,请有人帮我找到代码中的错误。 它们没有语法错误。 但在某个地方它是错误的,因为我没有得到我想要的输出。 函数get和toupper没有从库中实现 #include <stdio.h> #include <string.h> #include <stdlib.h> int toupper(char d); char gets(char a[100]); int main(void) {
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int toupper(char d);
char gets(char a[100]);
int main(void)
{
int i;
char a[100];
printf("enter your name \n");
gets(a);
printf("%c",toupper(a[0]));
for(i=1;a[i]!='\0';i++)
{
if(a[i]==' ')
{
printf("%c",toupper(a[i+1]));
}
}
printf("\n");
return 0;
}
int toupper(char d)
{
return (d-32);
}
char gets(char a[100])
{
int i;
for(i=0;a[i] != '\0'+1;i++)
{
scanf("%c",&a[i]);
}
return a[i];
}
如何为i提供“\0”?提示:你没有。i@user312567。改为使用。@user312567-你想要另一个咒语吗?既然在2011年从C标准中删除了GET,那么不建议使用它怎么样?新的代码绝对不应该使用它来编写;a[我]!='\0'+1;i++与fori=0相同;a[我]!=1.i++,所以它循环直到输入字符代码1,很可能是Ctrl a
#include <ctype.h>
#include <stdio.h>
int
main(int argc, char *argv[])
{
char s[512];
printf("Enter your name: ");
fflush(stdout);
if (fgets(s, sizeof(s), stdin)) {
int scanning_for_first = 1;
for (size_t i = 0; i < sizeof(s) && s[i] != '\n' && s[i] != '\0'; i++)
{
if (scanning_for_first) {
if (!isalnum(s[i])) continue;
printf("%c.", toupper(s[i]));
scanning_for_first = 0;
}
if (!isalnum(s[i])) {
scanning_for_first = 1;
}
}
}
printf("\n");
return 0;
}
Enter your name: John Fitzgerald Kennedy
J.F.K.