69,369
社区成员
发帖
与我相关
我的任务
分享
1 #include <stdio.h>
1 #include <ctype.h>
2 #include <string.h>
3
4 void capitalization(FILE *p);
5
6 int main(void)
7 {
8 FILE *fp = fopen("1.txt", "r");
9 if (NULL == fp) {
10 | fprintf(stderr, "Open %s Error", "1.txt");
11 | return -1;
12 }
13 capitalization(fp);
14 return 0;
15 }
16
17
18
19
20 void capitalization(FILE *p)
21 {
22 int i;
23 char array[100] = { 0 };
24 char str[100] = { 0 };
25
26 while (!feof(p))
27 {
28 | fgets(array, sizeof(array), p);
>> 29 | for (i = 0; i < strlen(array); i++)
30 | {
31 | | if ((isalpha(array[i])))
32 | | {
33 | | | str[i] = toupper(array[i]);
34 | | }
35 | else
36 | {
37 | | str[i] = array[i];
38 | }
39 }
40 printf("%s", str);
41 }
42 }
在Linux下测试了一下你的代码,没发现问题;我打开的文件里的数据要么是26个英文字符,要么是数字;可以将字母小写变大写,其他不变;
建议楼主查看一下要打开的文件;