当前位置:首页 » 编程语言 » c语言中用指针删除空格
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中用指针删除空格

发布时间: 2022-09-12 15:22:08

c语言程序问题 用指针将字符串中的空格删除

将p++; 这一句从if子句中移出来,不管if条件是真是假,都要执行它。
#include<stdio.h>
fun(char * str)
{
char * p=str;
int i=0;
while((*p)!=0)
{ if((*p)!=' ')
str[i++]=*p;
p++; //将这一句从if子句中移出来,不管if条件是真是假,都要执行它。

}
str[i]=0;
}

main()
{
char str[100];
printf("Input a string:");
gets(str);
puts(str);
fun(str);
printf("str:%s",str);
return 0;
}

㈡ C语言 输入一个字符串 利用指针 删除它的空格字符~

1.两个指针是根据自己需要来选的,p指针是用来遍历整个输入的字符串的,tmp是用来存储非空格的字符的。你可以不用两个指针,用tmp保存b的首地址,然后用b[i++]来遍历,最后输出用tmp。
2.已经通过*tmp++=*p
;这一句改掉了,tmp是指向b数组的指针。
3.*tmp++=*p
;这是后++,后加加的话意思是先使用该变量当前的值,用完后改变量tmp会自增1,与前加加是反过来的,这个得去看看计算机书了。。。

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

#include <stdio.h>

int main()

{

char *p="I am Chinese";

char c;

int i = 0;

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

if(c!=' ')

putchar(c);

}

}

(3)c语言中用指针删除空格扩展阅读:

字符串的函数应用

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

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

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

例:(‘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

网络-字符串

㈣ 关于C语言中利用指针和数组,删除字符串前面和后面的空格的问题。

你这代码错得多了点。

  1. 声明的a是字符,用scanf("%s",&a);为其输入一个字符串,能放得下吗?

  2. u=strlen(a);——a就是一个字节,用不着测;若这样测,恐怕编译都过不了。

  3. while(*p++ !='')这样的写法,循环体里的p已是增量后的p了,不知注意了没有?

㈤ C语言,使用指针法,删除字符串的所有尾部空格。

int
main()
{
char
str[256];
gets(str);
int
n
=
strlen(str);
if(n<=0)
return
0;
char
*p
=
str;
p
+=
n-1;
//把p的指针移动到字符串的末尾
while(*(--p)=='
')
{
*p
=
'\0';
}
//指针由末尾向前移动,遇到空格就把空格替换成'\0',也就是字符串的结束符
puts(str);
return
0;
}

㈥ C语言,使用指针法,删除字符串的所有尾部空格。

language后面是加了四个空格吧?
p=&s[strlen(s1)-4];//定位到要删除的四个空格地址
*p='\0' ;//赋值成空字符,strlen计数到此就会停止
直接把这个添加到中间就可以了。
另外puts,gets一类的要少用,真的太不靠谱了。
warning: ‘gets’ is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations]

㈦ C语言 初学者用一个指针删除字符串中的空格。。

这个算法的思想是,用一个变量统计前面出现了多少个空格,把原字符串的第n+offset的值赋给新字符串的第n个字符。这样就能达成一次遍历就能在原字符串上修正的目的了。
#include <stdio.h>
#include <stdlib.h>

int main()
{
char *s=malloc(256);
char *p=s,offset=0;/*offset记录数据交换的间隔*/
printf("请输入一个字符串:\n");
fgets(s,256,stdin);
printf("去空格前:\n%s",s);
while(*p!='\0')
{
if(*p==' ')
offset++;
p++;
*(p-offset)=*p;
}
printf("去空格后:\n%s",s);
free(s);
return 0;
}

㈧ C语言程序问题 《用指针将字符串中的空格删除》

//请运行一下,要看一下结果,检查有没有漏删空格,和多删字符.
// 此程序能编译通过,结果正确.

#include<stdio.h>
int fun(char * str)
{
char * p=str;
int i=0;
while( *p != '\0' ){
if( *p == ' ') {
char *A = p ;
while( *A != 0 ){ // 可能有重复的 空格 //可用 memmove,
*A = *(A+1); // 把后面的字符往前移,
++A;
}
*A = '\0';
continue;
}
++ p ;
}
/*str[i]=0;*/
}

int main(int argc, char **argv )
{
char str[100] = "AAA B BB C CC D D D ";
printf("Input a string:");
/*gets(str);*/
puts(str);
fun(str);
printf("\nstr:[%s]\n",str);
return 0;
}