我需要从 C 语言的文件中读取字符串,这是工作,现在我需要在每个字符串中找到以大写字母开头的单词。有任何意见吗?
示例:1) Windows 是一个很好的操作系统 2) Linux 是开源的
大写字母单词:Windows、OS、Linux、Open、Source。
#include <stdio.h>
int main()
{
/* dichiarazioni variabili */
FILE *fp;
char vet1[100];
char vet2[100];
fp = fopen("file.txt", "r"); /* apro il file contenente la stringa */
if (fp == NULL) {
printf("\nIl file non esiste!\n");
}
while (!feof(fp)) {
fgets(vet1, 100, fp);
printf("%s\n", vet1);
}
fclose(fp);
}
最佳答案
检测大写字母就像阅读任何 GNU/Linux 发行版中的“ascii”手册一样简单,您可以在其中找到从 A 到 Z 的所有大写字母分别具有从 0x40 到 0x5A 的十六进制数字,并记住这一点:
#include <stdio.h>
#include <stdlib.h>
int main( int argc,char *argv[])
{
char *buffer,c;
size_t bufsize = 32; // add all the buffer that you need
size_t characters;
FILE *fp;
if(argc != 2)
return -1;
buffer = (char *)malloc(bufsize * sizeof(char));
fp = fopen(argv[1],"r");
if( fp == NULL)
return -2;
while( !feof(fp) )
{
characters = getline(&buffer,&bufsize,fp);
buffer[characters-1]='\0';
if ( buffer[0] > 0x40 && buffer[0] < 0x5A )
printf("buffer = %s",buffer);
}
return 0;
}
关于c - 我需要一个带有 C 语言字符串的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55401665/