应用字符数组存储从键盘输入一行字符(100个以内),用户输入整数i和n的值,编写算法输出该字符串中从第i个字符开始的n个字符。 提示:若i<1则认为i=1,若字符串剩余的字符不够n个则输出剩余的全部字符。来一个这样的c程序编程
时间: 2024-02-26 08:57:08 浏览: 65
好的,下面是一个满足您要求的C语言程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, n, len;
printf("请输入一个字符串(100个字符以内):");
fgets(str, 100, stdin);
printf("请输入i和n的值:");
scanf("%d %d", &i, &n);
len = strlen(str) - 1; // 减1是因为fgets()函数会在末尾添加换行符
if (i < 1) {
i = 1;
}
if (i > len) {
printf("i的值超过了字符串的长度");
return 0;
}
if (i + n - 1 > len) {
n = len - i + 1;
}
printf("从第%d个字符开始的%d个字符为:", i, n);
for (int j = i - 1; j < i + n - 1; j++) {
printf("%c", str[j]);
}
return 0;
}
```
程序首先定义了一个字符数组`str`,用于存储用户输入的字符串;同时定义了两个整型变量`i`和`n`,用于存储用户输入的起始位置和需要输出的字符数。
然后,程序调用了`fgets()`函数,从标准输入读取用户输入的字符串并存储到`str`数组中。接着,程序读取用户输入的`i`和`n`的值。
接下来,程序对用户输入的`i`和`n`的值进行了一些限制和处理。如果用户输入的i小于1,则将i的值设为1;如果用户输入的i超过了字符串长度,则输出提示信息并结束程序;如果用户输入的n超过了字符串剩余的字符数,则将n的值设为剩余字符数。
最后,程序使用一个循环输出从第`i`个字符开始的`n`个字符。需要注意的是,字符数组的下标从0开始,而用户输入的i和n的值从1开始,因此在循环中需要进行一些转换。
希望这个程序对您有所帮助!
阅读全文