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分配的内存要在不用时手动释放。
是则把后面的字符全部往前移 然后指针后移 这个不会耶~~
参考技术C 这个貌似有难度哦,因为scanf语句无法输入空格啊,一遇空格就停止了。c语言计算字符串的长度(用指针)
参考技术A#include<cstdio>
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("<格式化字符串>",<参量表>)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
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语言 初学者用一个指针删除字符串中的空格。。的主要内容,如果未能解决你的问题,请参考以下文章