c语言实现(解决不限长输出)
-
scanf函数将会返回成功读取的输入项数。在本题中,scanf期望读取两个字符串,所以正常情况下会返回 2。
-
当输入到文件尾(此处“文件”可以理解为输入流)或输入错误时返回EOF,则可以在需要结束输入的时候手动键入EOF在标准输入中,EOF 可以通过按下 Ctrl + D (Linux/Mac) 或 Ctrl + Z (Windows) 来触发,告诉程序输入已经结束。
-
如果 scanf 遇到 EOF 时,返回值将是 EOF,因此当用户输入结束(或没有更多数据)时,循环条件 scanf(…) != EOF 将为 false,并结束循环。
#include <stdio.h>
#include <string.h>
int main() {
char str[15], substr[5];
while (scanf("%s %s", str, substr) != EOF) { // 读取每一行输入
int max_pos = 0;
int len_str = strlen(str);
for (int i = 1; i < len_str; i++) {
if (str[i] > str[max_pos]) {
max_pos = i;
}
}
、 for (int i = 0; i <= max_pos; i++) {
printf("%c", str[i]);
}
printf("%s", substr);
for (int i = max_pos + 1; i < len_str; i++) {
printf("%c", str[i]);
}
printf("\n");
}
return 0;
}