C语言,1.读文件a.txt,其内容为一字符串。要求将字符串中各字符及ASCII码值写入到另外一文件中。例如: a1Bc,写入另一文件中为a7149B66cc
时间: 2024-05-03 11:22:16 浏览: 11
```
#include <stdio.h>
int main() {
FILE *fp1, *fp2;
char c;
fp1 = fopen("a.txt", "r");
fp2 = fopen("b.txt", "w");
if (fp1 == NULL || fp2 == NULL) {
printf("文件打开失败!\n");
return 1;
}
while ((c = fgetc(fp1)) != EOF) {
fprintf(fp2, "%c%d", c, c);
}
fclose(fp1);
fclose(fp2);
printf("文件写入成功!\n");
return 0;
}
```
解释:先打开两个文件,一个读取,一个写入。然后逐个字符读取文件a.txt中的字符,将其转换为ASCII码值,并写入文件b.txt中。最后关闭文件,输出写入成功。
相关问题
用c语言 计算字符串s中每个字符的权重值并依次写入数组a,权重值是字符的位置值与该字符ASCII码值的乘积。首字符位置为1,最后一个字符的位置值为strlen(s)
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void calcWeight(char *s, int *a) {
int len = strlen(s);
for (int i = 0; i < len; i++) {
a[i] = (i + 1) * s[i];
}
}
int main() {
char s[] = "hello world";
int a[strlen(s)];
calcWeight(s, a);
for (int i = 0; i < strlen(s); i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
在calcWeight函数中,首先计算字符串的长度,然后遍历每个字符,计算权重值并存入a数组中。
在main函数中,先定义了字符串s和数组a,然后调用calcWeight函数计算权重值并输出结果。
注意,这里的数组a必须足够大,即a的长度要等于字符串s的长度,否则会出现越界访问的错误。
用c语言 计算字符串s中每个字符的权重值并依次写入数组a
以下是用C语言计算字符串s中每个字符的权重值并依次写入数组a的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[100];
int a[100], i, len;
printf("请输入字符串s:");
scanf("%s", s);
len = strlen(s);
for (i = 0; i < len; i++) {
a[i] = s[i] - 'a' + 1;
printf("%c的权重值为%d\n", s[i], a[i]);
}
return 0;
}
```
解析:
1. 首先定义一个字符数组`s`和一个整型数组`a`,用于存储输入的字符串和每个字符的权重值。
2. 使用`printf`函数提示用户输入字符串`s`,并用`scanf`函数读入字符串。
3. 使用`strlen`函数获取字符串`s`的长度。
4. 使用`for`循环遍历字符串`s`中的每个字符,计算其权重值并存入数组`a`中。权重值的计算方法为:将字符转换为对应的ASCII码值,再减去字符'a'的ASCII码值,再加上1。
5. 使用`printf`函数输出每个字符的权重值。