使用C编写程序:输入任意文法,统计Vn,Vt并输出
时间: 2023-05-22 07:04:06 浏览: 98
使用汇编语言,输入字符串,统计其总字符数、字母数、数字数、其他数并输出
您可以使用以下代码来输入任意文法,统计其Vn和Vt,并输出结果:
```
#include<stdio.h>
#include<string.h>
#define MAX 100
void find(char [], char [], int*, int*);
int main()
{
int i, j, Len;
int Vn_count = 0, Vt_count = 0;
char str[MAX], Vn[MAX], Vt[MAX];
printf("请输入一个任意文法:\n");
fgets(str, MAX, stdin);
Len = strlen(str);
find(str, Vn, &Vn_count, &Vt_count);
for(i = 0; i < Vn_count; i++)
{
printf("Vn[%d]: %c\n", i, Vn[i]);
}
for(j = 0; j < Vt_count; j++)
{
printf("Vt[%d]: %c\n", j, Vt[j]);
}
printf("Vn的数量是:%d\n", Vn_count);
printf("Vt的数量是:%d\n", Vt_count);
return 0;
}
void find(char str[], char Vn[], int* Vn_count, int* Vt_count)
{
int i, j, k, Len, IsVn;
Len = strlen(str);
for(i = 0; i < Len; i++)
{
IsVn = 0;
for(j = 0; j < *Vn_count; j++)
{
if(str[i] == Vn[j])
{
IsVn = 1;
break;
}
}
if(!IsVn)
{
for(k = 0; k < *Vt_count; k++)
{
if(str[i] == Vt[k])
{
break;
}
}
if(k == *Vt_count)
{
Vt[k] = str[i];
(*Vt_count)++;
}
}
if(str[i] >= 'A' && str[i] <= 'Z')
{
for(j = 0; j < *Vn_count; j++)
{
if(str[i] == Vn[j])
{
break;
}
}
if(j == *Vn_count)
{
Vn[j] = str[i];
(*Vn_count)++;
}
}
}
}
```
请在终端输入以上代码,可以输出任意文法的Vn和Vt字符。
阅读全文