gpt4 book ai didi

c - 在 C 中向后循环名称

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

我想从 n 次开始向后打印我的名字 (n = 1-100)。我似乎无法弄清楚。正如您从我的代码中看到的, strrev() 在循环时不起作用,因为它不断地一遍又一遍地反转。我还想以某种方式强制用户输入字母而不是数字作为名称,但这并不是必需的。

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

int main ()
{
int choice;
char name[255];
int loopCounter;
int count;
int number;

do
{
printf("1.Display Your Name\n");
printf("2.Display Your Name (From 1-100)\n");
printf("3.Display your Name Backwards\n");
printf("4.Display Your Name Backwards (From 1-100)\n");
printf("5.Quit\n");

printf("Enter your name:\n");
scanf("%s", name);

printf("Enter your choice: ");
scanf("%i", &choice);

switch(choice)
{
case 1:
printf("Your name is %s.\n", name);
break;
case 2:
printf("How many times to display your name? (1-100) ");
scanf("%i", &count);

if ( 100 < count)
{
printf("Please enter 1 through 100\n");
}
else
{
loopCounter = 0;
while (loopCounter < count )
{
loopCounter++;
printf("%d %s\n", loopCounter,name);
}
}
break;
case 3:
printf("Your name backwards is: %s\n\n", strrev(name));
break;
case 4:
printf("How many times to display your name backwards? ");
scanf("%i", &count);
if ( 100 < count)
{
printf("Please enter 1 through 100\n");
}
else
{
loopCounter = 0;
while (loopCounter < count )
{
loopCounter++;
printf("%d %s\n", loopCounter, strrev(name));
}
}
break;
case 5:
printf("Goodbye!!!!\n");
break;
default:
printf("Was not 1 through 5\n");
break;
}
} while (choice!=5);
}

最佳答案

您的问题是 strrev() 反转了字符串。

如果您想保留原始名称,则应该复制 name 并在循环之前使用 strrev() 将其反转一次。然后在循环中,只需调用反转的名称即可。

否则,只需执行以下操作:

loopCounter = 0;
strrev(name);
while (loopCounter < count ) {
loopCounter++;
printf("%d %s\n", loopCounter, name);
}

关于c - 在 C 中向后循环名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31236712/

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