C语言怎样删除字符串中的空白字符

发布网友 发布时间:2022-04-20 22:32

我来回答

9个回答

热心网友 时间:2022-04-22 15:55

#include <stdio.h>

int main()

{

char *p="I am Chinese";

char c;

int i = 0;

while((c = p[i++])!='\0'){

if(c!=' ')

putchar(c);

}

}

扩展资料:

字符串的函数应用

1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn。

例:concat('11','aa')='11aa';

2. 求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。

例:copy(‘abdag',2,3)='bda'

3. 删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。

例:s:='abcde';delete(s,2,3);结果s:='ae'

4. 插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置。

例:s:=abc;insert('12',s,2);结果s:='a12bc'

5. 求字符串长度 length(s) 例:length('12abc')=5。

在ASP中 求字符串长度用 len(s)例: len("abc12")=5

6. 搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0。

例:pos(‘ab','12abcd')=3

参考资料:

百度百科-字符串

热心网友 时间:2022-04-22 17:13

printf("love");printf("\b ");转义符\b是退格,但是并不删除,因此可以再退格后输出一个空格覆盖最后的e。注意\b是不能退到上一行的,最多退到行首。

热心网友 时间:2022-04-22 18:47

很高兴能回答你的提问`我是简单の快乐。 #include<conio.h>
#include<stdio.h>
void delspace(char * p)
{
int i,j=0;
for ( i = 0;p[i]!='\0';i ++ ) {
if(p[i] != ' ')
p[j++] = p[i];
}
p[j] = '\0';
}
void main()
{
char s[100];
printf("Please input the string!\n");
gets(s);
delspace(s);
puts(s);
getch();
}谢谢采纳 不懂得可以追问

热心网友 时间:2022-04-22 20:39

/* 利用指针 */

#include <stdio.h>
#define SIZE 50

void del_space(const char *str, char *dst)
{
while (*str)// *str != '\0';
{
if (*str == ' ')
str++;

else
*dst++ = *str++;// 将不为空的*str依次赋值给*dst
}
}

int main(int argc, char *argv[])
{
char str[SIZE];
printf("Input:\n");
gets(str);

char dst[SIZE];
del_space(str, dst);
printf("%s\n", dst);

return 0;
}

热心网友 时间:2022-04-22 22:47

#include <stdio.h>
#include <string.h>
void main()
{
int i,j,n;char str[80];
gets(str);n=strlen(str);
for(i=0;i<n;i++)
{
if(str[i]==' ')
{
for(j=i;j<n-1;j++)
str[j]=str[j+1];
str[n-1]='\0';
n--;
}
}
printf("%s",str);
}

热心网友 时间:2022-04-23 01:11

int i,j; char s[]="How are you?";
for(i=j=0;s[i];i++)
if(s[i]!=' '&&s[i]!='\t')s[j++]=s[i];
puts(s);

热心网友 时间:2022-04-23 03:53

很高兴能回答你的提问`我是简单の快乐。 #include<conio.h>
#include<stdio.h>
void delspace(char * p)
{
int i,j=0;
for ( i = 0;p[i],='\0';i ++ ) {
if(p[i] ,= ' ')
p[j++] = p[i];
}
p[j] = '\0';
}
void main()
{
char s[100];
printf("Please input the string,\n");
gets(s);
delspace(s);
puts(s);。

热心网友 时间:2022-04-23 06:51

先遍历,如果是空格,后面所有位数向前移动。当然上面的用另外一个数组来接受新的也不错

热心网友 时间:2022-04-23 10:05

采用指针遍历字符串,如果不是空格则将数据保留在字符串中,如果是空格,则跳过该字符,继续检查下一个字符。
voidVS_StrTrim(char*pStr)
{
char *pTmp = pStr;

while (*pStr != '/0')
{
if (*pStr != ' ')
{
*pTmp++ = *pStr;
}
++pStr;
}
*pTmp = '/0';
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com