C++ 如何转换此C++;代码转换成C代码?
我很难弄明白如何转换一个简单的C程序。我找不到像C++ 如何转换此C++;代码转换成C代码?,c++,c,C++,C,我很难弄明白如何转换一个简单的C程序。我找不到像vector这样的变量的替代方案。它将如何在C中使用?并包括 #包括 使用名称空间std; 字符串元音(string str) { 向量元音={'a','e','i','o','u', ‘A’、‘E’、‘I’、‘O’、‘U’}; 对于(int i=0;i
vector
这样的变量的替代方案。它将如何在C中使用?并包括
#包括
使用名称空间std;
字符串元音(string str)
{
向量元音={'a','e','i','o','u',
‘A’、‘E’、‘I’、‘O’、‘U’};
对于(int i=0;i newfile1一般来说,它并不简单(简而言之,使用算法并用C实现)。然而,这个程序不是很复杂(而且效率不高,我很怀疑它是错误的)
它所做的是:
它打开一个文件“input.txt”进行读取。好的,在C语言中,您有fopen()
来读取它
从input.txt中找到的每一行中,它都会从该行中删除元音。这就是remVowel()
所做的,例如remVowel(“您好!您还好吗?”)
将返回“H thr!r y k?”
(它是以二次方式执行的,即作为旁注,以无效的方式执行)
然后main()
就是这样。没有简单的方法。你为什么要这样做?vector
?写一个列表。replace
?自己写。frstream
可以用文件
来模拟。旁白:如果
有一个固定大小的向量,我会使用remove\u,而不是循环和string::replace
这意味着它可以在C++中使用<代码> STD::数组,并且你会使用……CThe问题中的RAW数组太宽了。你需要尝试一下,然后如果你有问题,再来问一个具体的问题。
#include <bits/stdc++.h>
using namespace std;
string remVowel(string str)
{
vector<char> vowels = {'a', 'e', 'i', 'o', 'u',
'A', 'E', 'I', 'O', 'U'};
for (int i = 0; i < str.length(); i++)
{
if (find(vowels.begin(), vowels.end(),
str[i]) != vowels.end())
{
str = str.replace(i, 1, "");
i -= 2;
}
}
return str;
}
int main(){
fstream newfile;
newfile.open("input.txt",ios::in);
if (newfile.is_open()){
string tp;
while(getline(newfile, tp)){
tp = remVowel(tp);
fstream newfile1;
newfile1.open("output.txt",ios::out | ios::app);
if(newfile1.is_open())
{
newfile1<<tp<<"\n";
newfile1.close();
}
}
newfile.close();
}
}