C语言如何将字符串写入文本文件?

C语言如何将字符串写入文本文件?,第1张

从键盘输入一行字符,写入一个文件, 再把该文件内容读出显示在屏幕上。\x0d\x0a#include\x0d\x0amain()\x0d\x0a{\x0d\x0aFILE *fp\x0d\x0achar ch\x0d\x0aif((fp=fopen("string","wt+"))==NULL)\x0d\x0a{\x0d\x0aprintf("Cannot open file strike any key exit!")\x0d\x0agetch()\x0d\x0aexit(1)\x0d\x0a}\x0d\x0aprintf("input a string:\n")\x0d\x0ach=getchar()\x0d\x0awhile (ch!='\n')\x0d\x0a{\x0d\x0afputc(ch,fp)\x0d\x0ach=getchar()\x0d\x0a}\x0d\x0arewind(fp)\x0d\x0ach=fgetc(fp)\x0d\x0awhile(ch!=EOF)\x0d\x0a{\x0d\x0aputchar(ch)\x0d\x0ach=fgetc(fp)\x0d\x0a}\x0d\x0aprintf("\n")\x0d\x0afclose(fp)\x0d\x0a}

以下是一个简单的C语言程序,可以实现将键盘输入的字符串写入文件中,并统计其中字母、数字、空格和其他字符出现的次数,并将字母和数字存放到另一个文件中:

```c

#include <stdio.h>

#include <ctype.h>

int main() {

char str[1000], ch

int i = 0, letter_count = 0, digit_count = 0, space_count = 0, other_count = 0

// 从用户输入中读取字符串

printf("Enter a string: ")

fgets(str, sizeof(str), stdin)

// 将字符串写入文件并统计字符出现次数

FILE *fp = fopen("input.txt", "w")

if (fp == NULL) {

perror("fopen")

return 1

}

while ((ch = str[i++]) != '\0') {

fputc(ch, fp)

if (isalpha(ch)) {

letter_count++

} else if (isdigit(ch)) {

digit_count++

} else if (isspace(ch)) {

space_count++

} else {

other_count++

}

}

fclose(fp)

// 统计字母和数字出现次数并将其存入文件

fp = fopen("output.txt", "w")

if (fp == NULL) {

perror("fopen")

return 1

}

fprintf(fp, "Letters: %d\n", letter_count)

fprintf(fp, "Digits: %d\n", digit_count)

fclose(fp)

// 输出字符出现次数的统计结果

printf("Letter count: %d\n", letter_count)

printf("Digit count: %d\n", digit_count)

printf("Space count: %d\n", space_count)

printf("Other count: %d\n", other_count)

return 0

}

```

在上述代码中,我们使用 `fgets()` 函数从用户输入中读取字符串,并将其写入名为 `input.txt` 的文本文件中。在此过程中,我们使用了 `isalpha()` 和 `isdigit()` 等函数判断字符类型,并统计其中字母、数字、空格和其他字符的出现次数。

然后,我们使用 `fprintf()` 函数将字母和数字的出现次数分别存入名为 `output.txt` 的文件中。

最后,输出字符出现次数的统计结果。

需要注意的是,在实际应用中还需要考虑更多的边界情况和错误处理。例如,可能出现无法打开或关闭文件、读写文件出错等问题。此外,如果输入的字符串超出预设数组大小,可能会引起缓冲区溢出等问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12075952.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存