C语言怎样删除字符串中的空白字符?
/*
删去字符串空格
*/
#include
#include
voidmain()
{charch[80],str1[80];
inti,j=0;
gets(ch);
for(i=0;i
{
if(ch[i]=='')
{}
else
str1[j++]=ch[i];
}
puts(str1);
}
c语言去掉重复字符怎么输出?
以下是使用C语言去掉字符串中重复字符的代码,并对结果进行输出:
```
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
int len, i, j, k;
printf("请输入一个字符串:\n");
scanf("%s", &str);
len = strlen(str);
for (i = 0; i < len; i++)
{
for (j = i + 1; j < len; j++)
{
if (str[i] == str[j]) // 若有重复字符
{
for (k = j; k < len; k++) // 移动其他字符
{
str[k] = str[k + 1];
}
len--; // 字符串长度减一
j--; // 继续判断同一位置字符
}
}
}
printf("去重后的字符串为:\n");
for (i = 0; i < len; i++) // 输出结果
{
printf("%c", str[i]);
}
printf("\n");
return 0;
}
```
运行后,输入一个字符串,程序会去掉其中重复的字符,并输出去重后的字符串。
1. 可以通过使用哈希表来实现。
2. 原因:c语言没有现成的函数可以直接去重,但可以手动使用哈希表来实现。
哈希表是一种用于快速查找的数据结构,其访问元素的时间复杂度为 O(1)。
将每个字符作为哈希表的键,可以快速地判断一个字符是否已经出现过。
3. 除了使用哈希表外,还可以使用其他算法实现去重,比如排序后去重、双指针法等。
在实际开发中要根据具体情况选择最适合的算法。
C语言中可以这样输出使用printf()函数去重复一个字符。
输出字符需要用%c占位符,也可以直接输出。重读输出字符可以用循环。
例:直接输出for(int i= 0 ; i< 10 ; i++){printf("*****************************\n");
//循环10次,输出10行*}变量输出char c = ‘a’;
for(int i = 0; i < 10; i++){printf(“%c\n”,c);
//循环10次,输出变量c}就可以重复了