gpt4 book ai didi

谁能帮我处理这段代码吗?

转载 作者:行者123 更新时间:2023-11-30 19:51:20 25 4
gpt4 key购买 nike

我认为我的逻辑是正确的,但它没有打印任何内容。代码是把字符串中的元音去掉然后显示出来。

 #include<stdio.h>
#include<conio.h>
void main()
{
char *str="shivank";
int i,len;
char *q;
clrscr();
len=strlen(str);
for(i=0;i<=len;i++)
{
if((*str=='a')||(*str=='e')||(*str=='i')||(*str=='o')||(*str=='u'))
str++;
else if(*str=='\0')
break;
else
{
*q=*str;
str++;
q++;
}
}
*q='\0';
puts(q);
getch();
}

最佳答案

如果我理解正确,您需要将 "shivank" 转换为 "shvnk",并将其存储在单独的字符串中以便稍后打印。

你必须在某个地方分配这个内存。仅使用指针无法完成工作 - 最好的情况是,您可以更改 str 以指向字符串的不同开头:"hivank", “ivank”“vank”等..都可以仅使用指针算术来获得,但仅此而已。

我建议您使用 char 数组而不是使用字符串常量:

char str[] = "shivank";
char modified_str[10]; // enough memory to store the modified string

使用数组的优点是您可以像下面的示例一样修改它们:

modified_str[0] = str[0];

(这只是将 str 的第一个字母复制到 modified_str 的第一个字母的示例)

然后你就可以一一读取str字符串中的字符,并且只将非元音复制到modified_str。不要忘记以“\0”结束 modified_str

关于谁能帮我处理这段代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46205028/

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