复制
收藏
提问
全网
string s[600]; while(true) { ++cnt; cin >> s[cnt]; if(s[cnt] == "0") break; bool occ = false; for(int i = 1; i < cnt; i++) { if(s[i] == s[cnt]) { occ = true; break; } } if(occ == false) cout << s[cnt]; }转C语言代码
刚刚
理解问题string s[600]; while(true) { ++cnt; cin >> s[cnt]; if(s[cnt] == "0") break; bool occ = false; for(int i = 1; i < cnt; i++) { if(s[i] == s[cnt]) { occ = true; break; } } if(occ == false) cout << s[cnt]; }转C语言代码
已完成理解「string s[600]; while(true) { ++cnt; cin >> s[cnt]; if(s[cnt] == "0") break; bool occ = false; for(int i = 1; i < cnt; i++) { if(s[i] == s[cnt]) { occ = true; break; } } if(occ == false) cout << s[cnt]; }转C语言代码」
展开阅读网页
C++ 转 C 语言代码
C++ 中的 string
类型和输入输出流 cin
在 C 语言中没有直接对应的类型。在 C 语言中,我们通常使用字符数组和 scanf
函数进行输入输出。以下是将提供的 C++ 代码转换为 C 语言代码的示例:
#include <stdio.h>
#include <stdbool.h>
int main() {
int cnt = 0;
char s[600][100]; // 假设字符串最大长度为99
char input[100]; // 用于存储每次输入的字符串
while (true) {
++cnt;
if (scanf("%99s", input) != 1) break; // 读取字符串,最大长度为99
if (input[0] == '0') break; // 如果输入为"0",则退出循环
bool occ = false;
for (int i = 1; i < cnt; i++) {
if (strcmp(s[i], input) == 0) { // 如果当前字符串已存在,则occ为true
occ = true;
break;
}
}
if (!occ) printf("%s\n", input); // 如果字符串是第一次出现,则输出
strcpy(s[cnt], input); // 将新字符串复制到数组中
}
return 0;
}
要点说明
- 使用
char
数组:C 语言中使用字符数组代替 C++ 中的string
类型。 - 使用
scanf
函数:代替 C++ 中的cin
进行输入。 - 使用
strcmp
函数:比较两个字符串是否相同。 - 使用
strcpy
函数:复制字符串到数组中。 - 使用
bool
类型:C99 标准引入了布尔类型bool
,需要包含stdbool.h
。
更专业一些
转笔记
专业
string s[600];
while(true) {
++cnt; cin >> s[cnt];
if(s[cnt] == "0") break;
bool occ = false;
for(int i = 1; i < cnt; i++) {
if(s[i] == s[cnt]) {
occ = true; break;
}
}
if(occ == false) cout << s[cnt];
}转C语言代码不在提醒