C 切换案例意味着资本变小和资本变小
例如,如果文件包含以下文本:C 切换案例意味着资本变小和资本变小,c,C,例如,如果文件包含以下文本:计算机。然后在运行代码之后,文件的内容应该是:计算机 但问题是只有一个字符是a。它不会变成首都A #include<stdio.h> #include<conio.h> #include <ctype.h> int main() { char name[100]; int loop; printf("Enter any Sting: "); gets(name); for (loop=0;
计算机
。然后在运行代码之后,文件的内容应该是:计算机
但问题是只有一个字符是a。它不会变成首都A
#include<stdio.h>
#include<conio.h>
#include <ctype.h>
int main()
{
char name[100];
int loop;
printf("Enter any Sting: ");
gets(name);
for (loop=0; name[loop] !=0; loop++)
{
if(name[loop]>='A' && name[loop]<='Z')
name[loop]=name[loop]+32;
else if(name[loop]>'a' && name[loop]<='z')
name[loop]=name[loop]-32;
}
printf("\nConvert case of character : %s",name);
return 0;
}
#包括
#包括
#包括
int main()
{
字符名[100];
内环;
printf(“输入任何标记:”);
获取(名称);
for(loop=0;name[loop]!=0;loop++)
{
如果(名称[loop]>='A'&&name[loop]'A'&&name[loop]更改
改变
您的代码存在许多问题:
#include<stdio.h>
将main
定义为intmain(void)
或intmain(intargc,char*argv[])
所以这整件事只是一个刺痛?有趣的拉普苏斯
gets(name);
绝对决不决不使用gets
!如果用户在提示下键入超过99个字符,gets
将导致缓冲区溢出,因为它无法确定名称的大小。此缓冲区溢出极有可能导致程序崩溃,但仔细利用此漏洞可能会导致攻击r控制计算机。这是一个非常好且简单的安全漏洞示例。scanf
与大多数情况一样,在这种情况下更加复杂、效率低下且难以安全使用。只需使用fgets
并适当处理尾部的'\n'
for (loop=0; name[loop] !=0; loop++)
这个循环的常用习惯用法是使用一个名为i
的索引变量。将它命名为loop
会让人感到困惑和冗长。与0
的比较可以写得更简单,因为name[loop]
是你的老师允许的,或者name[loop]='\0'
可以清楚地表明你在比较字符
{
if(name[loop]>='A' && name[loop]<='Z')
您使用的是ASCII或类似的编码。这种肮脏的技巧不可移植,容易混淆和出错。只需使用tolower
函数即可
else if(name[loop]>'a' && name[loop]<='z')
参见上文。toupper
就是为此而设计的
}
printf("\nConvert case of character : %s",name);
修复损坏的英语。在格式字符串的末尾添加一个'\n'
。如果不这样做,某些系统甚至不会输出任何内容
return 0;
}
在线校对作业只有在你从中学到东西的情况下才有用。我希望你做到了!你的代码有很多问题:
#include<stdio.h>
将main
定义为intmain(void)
或intmain(intargc,char*argv[])
所以这整件事只是一个刺痛?有趣的拉普苏斯
gets(name);
绝对决不决不使用gets
!如果用户在提示下键入超过99个字符,gets
将导致缓冲区溢出,因为它无法确定名称的大小。此缓冲区溢出极有可能导致程序崩溃,但仔细利用此漏洞可能会导致攻击r控制计算机。这是一个非常好且简单的安全漏洞示例。scanf
与大多数情况一样,在这种情况下更加复杂、效率低下且难以安全使用。只需使用fgets
并适当处理尾部的'\n'
for (loop=0; name[loop] !=0; loop++)
这个循环的常用习惯用法是使用一个名为i
的索引变量。将它命名为loop
会让人感到困惑和冗长。与0
的比较可以写得更简单,因为name[loop]
是你的老师允许的,或者name[loop]='\0'
可以清楚地表明你在比较字符
{
if(name[loop]>='A' && name[loop]<='Z')
您使用的是ASCII或类似的编码。这种肮脏的技巧不可移植,容易混淆和出错。只需使用tolower
函数即可
else if(name[loop]>'a' && name[loop]<='z')
参见上文。toupper
就是为此而设计的
}
printf("\nConvert case of character : %s",name);
修复损坏的英语。在格式字符串的末尾添加一个'\n'
。如果不这样做,某些系统甚至不会输出任何内容
return 0;
}
在线校对作业只有在你从中学到东西的情况下才有用。我希望你这样做了!谢谢我收到了这个。只是一个船长。你能解释一下吗!为什么会有危险。C中的新手。@Probe:因为它不能阻止谢谢,我用scanf修改了它,我认为这对这样的程序来说已经足够了。谢谢我收到了这个。只是一个船长。你能解释一下吗?为什么会有这样的问题是危险的。C中的新手。@Probe:因为它不能阻止,谢谢,我用scanf修改了它,我认为这对于这样的程序来说已经足够了。
name[loop]=name[loop]-32;
}
printf("\nConvert case of character : %s",name);
return 0;
}