我正在尝试编写一个C程序,它只打印字符串中最后出现的重复字母。我已经完成了这一部分,但我想将所有这些字符存储在一个字符串中。到目前为止,我所拥有的是:
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
bool isLast(char *arg1, char ch, int p) {
p++;
while (arg1[p] != '\0') {
if ((arg1[p]) == ch) {
return false;
}
p++;
}
return true;
}
int main() {
char *word = "kaax";
char *vals = "1235";
char *result = "";
for (int i = 0; word[i] != '\0'; i++) {
if (isLast(word, word[i], i)) {
result += vals[i];
}
}
printf("%s", result);
}
我想要:
printf("%s",result);
要打印,请执行以下操作:
fxkav
因为这是我的程序的逻辑结果以及输出应该是什么。
发布于 2020-12-12 21:17:45
怎么说呢……不用谢。
您的“空字符串”是一个大小为1的字符串文字(仅包含'\0'
。它不能改变,甚至不能扩展。
如果您需要操作“字符串”(在C中,它实际上不是一个现有的概念),您需要将它们表示为字符序列,这些字符存储在一个数据结构中,该数据结构允许更改所包含的字符,并且在您的情况下,还具有容纳更多字符的空间。
在可以确定最大大小(MAXSIZE
)的情况下,可以像这样定义该大小的字符数组
char SizedCharArray[MAXSIZE];
https://stackoverflow.com/questions/65265304
复制相似问题