我试图用C语言解决一个问题,我得到一个字符串,并将字符串的某些部分转换为数字。我创建了一个名为replace的函数。在函数中,我遍历字符串数组,寻找特定的元音,并返回一个数字。结果应该是新的字符串。然后我应该调用main中的函数来显示结果。我是一个c语言的biginner,除了使用数组和函数之外,我们还没有讨论过其他的解决方案。
但是我的代码返回null。有人能帮帮我吗?我现在已经导致猜测工作,不知道我需要做什么,并一直在它的几个小时.
#include <cs50.h>
#include <stdio.h>
#include <string.h>
string replace(string argv[]);
int main(int argc, string argv[])
{
// argv[1] is the first word at the command line
string s;
string result = 0;
if (argc != 2)
{
printf("Usage: %s word\n", argv[0]);
return 1;
}
else
{
printf("Word is: %s\n", argv[1]);
printf("%s\n", result);
return 0;
}
}
string replace(string argv[])
{
string s = argv[1];
int len = strlen(s);
string result = 0;
for (int i = 0; i < len; i++)
{
if (s[i] == 'a')
{
result += 6;
}
else if (s[i] == 'e' )
{
result += 3;
}
else if (s[i] == 'i')
{
result += 0;
}
else if (s[i] == 'u')
{
result += 'u';
}
else
{
result += s[i];
}
}
return result;
}
我已经尝试检查我的代码和各种选项来返回字符串。我试过使用边缘聊天GPT来找出我代码中的问题,但我不能解决这个问题和代码,现在我真的很困惑,甚至调用函数和使用命令行参数的逻辑。
1条答案
按热度按时间kmbjn2e31#
result += 3; result += 'u';
等不会向字符串添加任何内容。它不是C++,Python或PHP。string
只是一个typedef
隐藏的char指针。要创建一个新的字符串,你需要分配足够的内存来容纳所有的字符和空字符结束符。
很难理解
result += 3
要做什么-我假设你想把它和"3"
连接起来。但你永远不会调用这个函数。你需要: