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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 初学者用一个指针删除字符串中的空格。。相关的知识,希望对你有一定的参考价值。

初学者喔。。。别复杂喔!

参考技术A 这个算法的思想是,用一个变量统计前面出现了多少个空格,把原字符串的第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;
追问

好复杂~
fgets(s,256,stdin);

free(s); 都看不懂~

追答

fgets表示从一个流中读取数据。stdin则指出这个流是输入流(就是你的按键输入的信息)。256那个参数是限制读入字符数量,最多读到256个字符后就终止,防止溢出的。这个函数比scanf的优越性就是,它能够读入空格。
free(s)是释放s指向的内存,s这个指针指向了一个字符串,如果程序员没有用free命令释放这块动态分配的内存,那么会发生内存泄漏。记住一点就行了,用malloc和realloc分配的内存要在不用时手动释放。

参考技术B 定义一个指针 从第一个字符开始 判断所指的字符是否为空格 是则把后面的字符全部往前移 然后指针后移 再判断 一直循环下去直到指针所指字符为\0结束追问

是则把后面的字符全部往前移 然后指针后移 这个不会耶~~

参考技术C 这个貌似有难度哦,因为scanf语句无法输入空格啊,一遇空格就停止了。

c语言计算字符串的长度(用指针)

参考技术A

#include&lt;cstdio&gt;

int main()

char s[20];

char*p;

printf("please input a string(less than 20 character):\\n");

//scanf("%s",s);不能读入空格

gets(s);

p=s;

while(*p!='\\0')

p++;

printf("The string lenth is%d\\n",p-s);

return 0;

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d\\n",a);

输出结果为a=1234。

扩展资料:

main()函数的可以包括两个参数

第一个参数的类型为int型;

第二个参数为字符串数组。

通常情况下,将第一个参数命名为argc,第二个参数为argv(当然参数名字可以换)。由于字符串数组有两种表达方式,因此,main函数存在两种书写方法:

1、形式一:

int main(int argc,char*argv[])//这里使用char*argv[]

return 0;

2、形式二:

int main(int argc,char**argv)//这里使用char**argv

return 0;

使用方法

参数的含义

int argc:表示字符串的数量argc=1+用户输入的字符串数目,操作系统负责计算数量,程序员不用管,只需要正确使用即可,例如用户输入2个字符串,argc=1+2=3;

char*argv[]:字符串的数组,即多个字符串,形式如下:

argv[0]=可执行文件名称,例如test.exe(非用户输入,操作系统根据可执行文件名称自动生成)

argv[1]=字符串1

argv[2]=字符串2

argv[3]=字符串3

以上是关于C语言 初学者用一个指针删除字符串中的空格。。的主要内容,如果未能解决你的问题,请参考以下文章

C语言指针初学者 请帮我看看下面的提 为啥调用函数返回值是char型的 这样不就只能返回一个字符了吗

初学者对C语言中指针的爱恨情仇

c语言,怎样输出有空格的字符串?

C语言-删除字符串空格

c语言 一个字符串以空格开头 怎么去掉开头的空格

c数组指针的约瑟夫杯问题 初学者求助