【发布时间】:2016-02-08 22:06:36
【问题描述】:
因此,对于一个作业,我必须完成一个旨在将字符串大写的代码。
我尝试的是这样的:
#include <stdio.h>
void capitalize(char *str)
{
int i = 0;
if (str[i] >= 97 && str[i] <= 122)
{
str[i] = str[i] - 32;
}
else
{
i++;
}
}
void strCopy(char *str2, char *str1)
{
while (*str2)
{
*str1 = *str2;
str2++;
str1++;
}
*str1 = '\0';
}
int main(int argc, char **argv)
{
char string1[100] = "This is a really long string!";
char string2[100];
strCopy(string1,string2);
capitalize(string2);
printf("The original string is \"%s\"\n", string1);
printf("The capitalized string is \"%s\"\n", string2);
}
但是,当我尝试运行它返回的代码时:
原始字符串是“这是一个非常长的字符串!”
大写的字符串是“This is a very long string!”
strcopy 似乎不是问题,因为它将string1 正确复制到string2。
我不明白为什么capitalize 不起作用,因为如果字母在 小写字母的ascii代码。
非常感谢有人帮助指出错误所在。
提前致谢!
【问题讨论】:
-
看看
ctype标头。有一些功能可能会对您有很大帮助。我猜你需要在capitalize内有一个循环。 -
查看我的answer here,了解如何以简单的方式更改字符的大小写..
-
感谢大家这么快的帮助!知道我最大的错误不是进入循环而不是更严重的错误,这让我松了一口气。您的所有建议都非常有帮助,再次感谢!