gpt4 book ai didi

c - 如何删除字符串中的元音

转载 作者:太空宇宙 更新时间:2023-11-04 05:54:46 25 4
gpt4 key购买 nike

我想编写一个删除字符串中元音的程序。到目前为止,这是我的代码:

#include <stdio.h>
#include <string.h>

void f (char s[100])
{
int ok=0;
for (int i=0; i<strlen(s); i++)
{
if ((s[i]=='a')||(s[i]=='e')||(s[i]=='i')||(s[i]=='o')||(s[i]=='u'))
{
ok++;
strcpy (s+i,s+i+1);
}
}
printf ("%s",s);
}

int main ()
{
f("alina");
return 0;
}

当我编译它时,我的程序停止工作。当我调试它时也会发生同样的情况:当我到达 strcpy (s+i,s+i+1); 行时,我收到一条错误消息:“程序已停止工作”。难道我做错了什么?我错过了什么吗?

最佳答案

这里的问题是,你在打电话

f("alina");

带有字符串文字 ("alina"),它通常存在于只读 内存中并且不可修改。任何修改字符串文字 的尝试都将导致未定义的行为。

相反,你可以做类似的事情

int main (void)
{
char arr[] = "alina";

f(arr);
return 0;
}

哪个

  • 定义一个名为arr的数组[可修改]
  • 用值"alina"初始化数组
  • 将数组传递给函数 f()

另外,记下 main() 的正确签名。

关于c - 如何删除字符串中的元音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30154015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com