c语言删除空格字符
1. c语言 输入一个字符串,删除中间多余的空格
可以参考下面的代码:
#include "stdio.h"
void main()
{
char s[]="I am a teacher!";
int i,j;
for(i=0;s[i];i++)
{
if(s[i]==32&&s[i+1]==32)/*如果字符串中第i和i+1个是空格,就运行if中的语句*/
for(j=i;s[j];j++) {s[j]=s[j+1];i=0;}/*此句是把2个空格换成一个,然后把空格之后的内容前移*/
}
printf("%s ",s);
}
(1)c语言删除空格字符扩展阅读:
1、for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。
“;”号之间的条件表达式是一个关系表达式,其为循环的正式开端,当条件表达式成立时执行中间循环体。
2、if语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式。其中最直观、最容易理解的是关系表达式。所谓关系表达式就是两个数值进行比较的式子。
2. c语言删除空格键
涨姿势啦, %*c格式符之前见都没见过,竟然表示跳过一个字符!
按你的代码逻辑在for循环中,首先读入一个字符,然后跳过一个字符,所以结果就是读入的是输入字符串的第奇数个字符:
对 aglh zhg zghh来说第奇数个字符分别是: a,l,空格,h,空格,g,h,刚好是输出的几个字符。
要删除输入字符中的空格不应该用%*c, 而应该读入后判断读入的字符是否为空格,如果是空格则继续,否则才将其赋值到数组内。
#include<stdio.h>
intmain()
{
chara[20],c;
inti=0;
while(i<20)
{
scanf("%c",&c);
if(c=='')
continue;
a[i++]=c;
printf("%c",c);
}
return0;
}
3. c语言 输入一个字符串,删除该字符串中的所有空格并输出处理后的字符串
int main()
{
char s[1024],c[1024];
int len,n=0,i;
char p,q;
p=s;q=c;
printf(“请输入字符串的长度:”);
scanf("%d",&len);
printf(“请输入一串字符串:”);
for(i=0;i<len+1;i++)
{
scanf("%c",p+i);
}
for(i=0;i<len+1;i++)
{
if((p+i)>=48&&(p+i)<=57||(p+i)>=97&&(p+i)<=122)
{
(q+n)=(p+i);
n++;
}
}
for(i=0;i<n+1;i++)
{
printf("%c",*(q+i));
}
}
c语言编程技巧
1、函数参数
在设计函数时,通常将目的参数放在前面,源参数放在后面。若可能,通过IN、OUT这样的宏定义来标注参数输入输出。
如果参数是指针,且仅作输入用,则应在类型前加const,以防止该指针在函数体内被意外修改。
2、函数中内存处理
(1)在函数中分配的内存,在函数退出之前要释放
(2)return语句不可返回指向“栈内存”的指针或者引用,因为该内存在函数体结束时被自动销毁。
4. C语言 空格删除
#include<stdio.h>
#include<string.h>
intstrdel(char*s);
intmain()
{
chara[100];
intn;
gets(a);
n=strdel(a);
puts(a);
printf("%d",n);
return0;
}
intstrdel(char*s)
{
inti,j=0,k=0,n;
char*p=s;
n=strlen(s);
for(i=0;i<n;i++)
{
if(*(p+i)=='')
{
j++;
continue;
}
else
{
*(s+k)=*(p+i);
k++;
}
}
*(s+k)='