【发布时间】:2015-07-26 08:10:30
【问题描述】:
我正在尝试创建一个将数组中的所有字符大写的函数。
#include <stdio.h>
#include <string.h>
void capitaliser(char inputText[])
{
int counter;
char upperLetter;
char lowerLetter;
for (counter = 0; counter < 26; counter++)
{
lowerLetter = 'a';
for (char upperLetter = 'A'; upperLetter <= 'Z'; upperLetter++)
{
if(inputText[counter] == lowerLetter)
inputText[counter] = upperLetter;
lowerLetter++;
}
}
}
int main( void )
{
int counter;
char array1[26]; = {'\0'};
char array2[26]; = {'\0'};
scanf("%s %s", array1, array2);
capitaliser(array1[26]);
capitaliser(array2[26]);
for ( counter = 0; counter < 26; counter++ )
{
printf("\n%c %c", array1[counter], array2[counter]);
}
}
当函数中的代码放在 main 中并且 'inputText' 被替换为 'array1' 或 'array2' 时,程序运行良好并提供所需的输出。但是,当我尝试将代码作为函数运行时,会遇到“致命运行时错误”。
据此,我假设我设置的功能不正确。我是否遗漏了一些非常明显的东西?
【问题讨论】:
-
我一直在使用由空格分隔的 2 个单词,即“臭奶酪”。如果我注释掉 main 中的函数,那么程序会运行并一次输出 1 个字符
-
这是什么语法:
char array1[26]; = {'\0'};???它可以编译吗?
标签: c arrays fatal-error