gpt4 book ai didi

转换 a-z 以打印出 abcdef....z?

转载 作者:太空宇宙 更新时间:2023-11-04 02:20:09 24 4
gpt4 key购买 nike

我希望能够让用户输入 a-z 或 c-z 或 c-p 或其他任何内容,并让它返回这两者之间的实际字母。我想我必须使用 ASCII 编号,这样我才能使用这些步骤:

  1. 如果为真,则寻找“-”

  2. 查看输入的第一个字符(char a in a-z),找到ASCII #

  3. 查看输入的最后一个字符(a-z 中的字符 z),找到 ASCII #

  4. 根据 ASCII # 打印第一个字母,然后循环打印其余字母,直到 a-z 中的最后一个字母(在这种情况下为 z)。

到目前为止,这是我的代码,但我认为它还有很长的路要走。我不太了解 C 中的 ASCII 内容,即使那是我所需要的。

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

void expand (char s1[], char s2[]){
int j = 0;
for (j; j <= s1[j-1]; ++j){
if(s1[j+2] = '-'){
while(j <= 70){
++j;
printf("%c\n", s1[j]);
}
}else{
printf("Invalid\n");
}
}
}

int main(){

int g = 40;
char s1[g], s2[g];

printf("Please enter a-z or an equivalent:\n");

scanf("%s", s1);
expand(s1, s2);
return 0;
}

最佳答案

char i;
char *str = "c-k";
for (i = str[0]; i <= str[2]; i++) {
printf("%c", i);
}

代码没有做太多的错误检查/角落条件,但你明白了。

如果您需要一个结果字符串而不是将其打印在屏幕上,您可以这样做(假设您已验证 str 为所需格式):

char i;
// this will allocate memory so that the result can be stored
char *rv = (char *)malloc(((str[2] - str[0]) + 1) * sizeof(char));
for (i = str[0]; i <= str[2]; i++) {
rv[i - str[0]] = i; // i - str[0] will result in 0, 1, 2 everytime you iterate
}
rv[i - str[0]] = '\0';

我还建议您通读一本优秀的 C 书的前几章,例如 K 和 R,这样您就可以很好地掌握这些内容。

关于转换 a-z 以打印出 abcdef....z?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1507039/

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