利用标准io实现读取文本内的数据然后将其反转(用C语言实现)
时间: 2024-01-22 15:18:17 浏览: 129
以下是C语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
printf("请输入要反转的字符串:");
fgets(str, MAX_LEN, stdin);
int len = strlen(str);
for (int i = len - 2; i >= 0; i--) { // 注意fgets函数会读入换行符,因此长度要减2
printf("%c", str[i]);
}
printf("\n");
return 0;
}
```
代码解释:
1. 定义了一个长度为MAX_LEN的字符数组`str`,用来存储读入的字符串。
2. 使用`fgets`函数从标准输入中读入字符串,最多读入MAX_LEN-1个字符,遇到换行符或EOF停止读入。
3. 使用`strlen`函数计算读入字符串的长度。
4. 使用循环从字符串的最后一个字符开始逐个输出到标准输出中,直到第一个字符为止。注意要减2是因为fgets函数会读入换行符和结束符'\0'。
5. 最后换行并返回0表示程序正常结束。
示例输入输出:
```
请输入要反转的字符串:hello world!
!dlrow olleh
```
相关问题
利用标准io实现读取文件内的数据然后将其反转(用C语言实现)
以下是用 C 语言实现读取文件并反转的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 1000
int main() {
FILE *fp;
char buffer[MAX_SIZE];
int len, i;
// 打开文件
fp = fopen("input.txt", "r");
if (fp == NULL) {
fprintf(stderr, "打开文件失败!\n");
exit(1);
}
// 读取文件内容
fgets(buffer, MAX_SIZE, fp);
// 计算字符串长度
len = strlen(buffer);
// 反转字符串
for (i = 0; i < len / 2; i++) {
char temp = buffer[i];
buffer[i] = buffer[len - i - 1];
buffer[len - i - 1] = temp;
}
// 输出反转后的字符串
printf("%s\n", buffer);
// 关闭文件
fclose(fp);
return 0;
}
```
注意:这里采用了 fgets 函数来读取文件内容,因此文件中的换行符也会被读取进来。如果不希望读取到换行符,可以将 fgets 改为 fread,并手动去除换行符。
利用标准io实现读取文件内的数据然后将其反转,将反转后的数据放回原文件内(用C语言实现)
以下是利用标准io实现读取文件内的数据然后将其反转,将反转后的数据放回原文件内的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 1000
int main() {
char data[MAX_SIZE];
int i, j, len;
FILE *fp;
/* 打开文件 */
fp = fopen("input.txt", "r+");
if (fp == NULL) {
printf("无法打开文件\n");
exit(EXIT_FAILURE);
}
/* 读取文件内容 */
fgets(data, MAX_SIZE, fp);
/* 计算字符串长度 */
len = 0;
while (data[len] != '\0') {
len++;
}
/* 反转字符串 */
for (i = 0, j = len - 1; i < j; i++, j--) {
char temp = data[i];
data[i] = data[j];
data[j] = temp;
}
/* 将反转后的数据放回文件 */
rewind(fp);
fputs(data, fp);
/* 关闭文件 */
fclose(fp);
printf("文件已反转\n");
return 0;
}
```
其中,我们通过`fopen()`函数打开文件,并指定打开方式为`r+`,表示既可以读取文件内容,也可以写入文件内容。
接着,我们使用`fgets()`函数读取文件内容,存储到字符数组`data`中。
然后,我们计算出字符数组的长度,使用双指针法将字符数组反转。
最后,我们使用`rewind()`函数将文件指针移回文件开头,使用`fputs()`函数将反转后的数据写回文件中。
最后,我们使用`fclose()`函数关闭文件。
阅读全文