我正在尝试找出一种只打印字符而不会在C语言中出现重复字符的方法。我们将提供任何帮助。
例如,如果我输入“ Hello”,我希望返回“ Helo”。
我当前的代码只是打印出传入的参数:
#include <stdio.h>
int main(int argc, char **argv)
{
int i;
i = 0;
while (argv[1][i] != '\0')
{
putchar(argv[1][i]);
i++;
}
return (0);
}
编辑:最好不使用任何其他功能/ #includes的
答案 0 :(得分:1)
您可以尝试一下。您需要一个长度为max possible ascii code的数组来处理 seen 字符。希望这会有所帮助。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
int * seen = calloc(256, sizeof(char));
if (argv[1] == NULL) {
printf("No argument.\n");
return 0;
}
for (int i = 0 ; i < strlen(argv[1]) ; i++) {
if (seen[argv[1][i]] != 1) {
seen[argv[1][i]] = 1;
putchar(argv[1][i]);
}
}
free(seen);
}
答案 1 :(得分:-1)
您可以这样做:
from eh.models import User, Country
user = User()
user.save()
print(user.country_count)
# 0
countries = (Country.objects.create() for i in range(10))
for c in countries:
user.countries.add(c)
print(user.country_count)
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
user.countries.remove(user.countries.first())
print(user.country_count)
# 9
user.countries.clear()
print(user.country_count)
# 0