首页 > 解决方案 > C 字符串问题。输入整数 N 和字符串,我想在第 N 个位置打印出字符。(如果 N>strlen(str))

问题描述

int N;
char str[64];
/*Entering integer N from interval [1,20]*/
do
{
    scanf("%d", &N);
}while(N<1 || N>20);

/*Entering string.*/    

fflush(stdin);
gets(str);

if(N<strlen(str))
{
    printf("%c", str[N-1]);
}

else if(N>strlen(str))
{
   /*missing code*/
}

return 0;

所以在这种情况下, N>strlen(str) 程序应该从头开始计算字符。例如,如果 N 为 5 且字符串为 "abc" ,则程序应计算 "abcab" 并在末尾打印 'b',因为字符位于第 N 个(在本例中为第 5 个)位置。

如果有人可以帮助我解决缺少的代码,我将不胜感激。

标签: cstringintegerstrlen

解决方案


/*missing code:*/ difference=N%strlen(str);

    if(difference==0)
    {
        printf("%c", str[difference]);
    }

    else printf("%c", str[difference-1]);

基本上这现在应该可以工作了。


推荐阅读