gpt4 book ai didi

c - 读取字符串并只保留字母

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

我希望用户输入一个字符串,然后只保留字母。我的问题是在第二个 while 循环中的函数 str 中,它从不将字母复制到另一个字符串。它甚至不打印 j !我真的不知道为什么会这样。

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

void str(char *s)
{
int i=0,j=0;
int sum=0;

char *outstr;
while(s[i]!='\0')
{
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
sum++;
i++;
}
i=0;
outstr=(char*)malloc(sum*sizeof(char));
while(s[i]!='\0')
{
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
{
strcpy(outstr[j],s[i]);
j++;
printf("\nj=%d",j);
}

printf("\ni=%d",i);
i++;

}


printf("%s",outstr);
}

int main()
{
char s[650];
int n;
gets(s);
str(s);

return 0;
}

最佳答案

你不需要 strcpy 函数:

strcpy(outstr[j],s[i]);

但是

outstr[j] = s[i];

就够了。还有改变

s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'

与:

(s[i]>='a' && s[i]<='z') || (s[i]>='A' && s[i]<='Z')

关于c - 读取字符串并只保留字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21511643/

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