c - 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 个)位置。
如果有人可以帮助我解决缺少的代码,我将不胜感激。
解决方案
/*missing code:*/ difference=N%strlen(str);
if(difference==0)
{
printf("%c", str[difference]);
}
else printf("%c", str[difference-1]);
基本上这现在应该可以工作了。
推荐阅读
- codeigniter - Google Recatpcha v2 Invisible 根本不工作说缺少输入响应
- tableview - tableView didset 不重新加载
- node.js - 用另一个 pug 文件替换字符串并将动态数据传递给该文件
- r - 在 R sf 的分组列上创建新几何
- python - Discord.py - 如何接收和发送消息到特定频道?
- php - 尝试一些自定义数组差异,如 PHP 中的方法
- php - 我在我的 PC 上的本地主机中的表单工作但在服务器上不起作用
- android - 如何在 android 中使用 jaudiotagger 更改歌曲的歌曲封面艺术?
- jquery - 当所有具有所需类的字段都被填充时,如何将类动态切换到 div?
- for-loop - 在 Rust 的 if 块中创建了一个向量。if 范围结束后如何使用?