我已经编写了一个工作程序,但该表单的任务不正确。有人可以帮我改变代码
试图改变并定位它,但没有工作结果。不完全理解void类型和其他函数等等。
代码:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main ()
{
int i=0;
const char s[]="SoMeThing SOmEThing stRing\n";
char lower;
printf("%s",s);
while (s[i])
{
lower=s[i];
putchar(tolower(lower));
i++;
}
return 0;
}
谢谢
答案 0 :(得分:1)
#include <stdio.h>
#include <ctype.h>
void lower(char *s){
for(;*s;++s)
*s=tolower(*s);
}
int main (){
char s[]="SoMeThing SOmEThing stRing\n";
printf("%s",s);
lower(s);
printf("%s",s);
return 0;
}
答案 1 :(得分:0)
我不确定这是你在找什么,但可能是。
从你的标题和突出显示的部分,我假设你想要摆脱
int main() {}
并标题为
void lower(char *s) {}
虽然您可以使用复制粘贴轻松完成此操作,但请了解此文件无法再自行编译。 C编译器将查找
[return type] main() {}
成为该计划的起点。没有这个,没有程序。
我相信你想要创建一个库并在另一个程序中使用lower函数。为此,我将使用包含和函数名称创建一个.h文件:
void lower(char *s);
这可以用一个包含此文件的所有其他包含替换:
#include "file.h"
您可以在其他程序中使用上述行在这些程序中使用此功能。如果库文件中有多个函数,并且您不希望它们都可以在文件外部访问,请确保在您不希望的方法前面使用'static'关键字:
static int otherFunction();
如果您正在寻找答案,请告诉我们。如果没有,请尝试澄清您的请求。
答案 2 :(得分:0)
此功能应该有效。
#include <string.h>
/* The function changes every upper-case letter of string s
to its corrispondent lower-case. */
void lower(char *s)
{
/* Iterates through string */
for (int i = 0; i != strlen(s); i++) {
s[i] = tolower(s[i]);
}
}
void
类型意味着该函数不返回任何值:它只是做一些工作并终止,但它不会向调用者返回任何内容。
请注意,此函数将更改字符串s的字符,而不是仅打印它们。