c语言 字符串去掉空格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 字符串去掉空格相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void trimSpace(char *instr, char *outstr)
int i = 0;
for (i = 0; i < (int)strlen(instr); i++)
if ((int)(*(instr+i))==32)
continue;
else
*(outstr + i) = *(instr + i);
printf("%c", *(outstr+i)); //这个位置可以打印出来去掉空格之后的字符串
*(outstr + i) = '\0';
printf("%s", *outstr); //这个位置再打印就是null了 求解为什么 感谢
void main()
char *p1 = " abcdefgdddd ";
char p2[100] = 0;
trimSpace(p1,p2);
//printf("%s", p2);
getchar();
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void trimSpace(char *instr, char *outstr)
int i = 0;
int j = 0; // 因为去掉空格后的字符串的字符个数和去掉空格之前不一样,需要额外增加一个变量用来标记下标。
for (i = 0; i < (int)strlen(instr); i++)
if ((int)(*(instr+i))==32)
continue;
else
*(outstr + j) = *(instr + i);
j++;
printf("%c", *(outstr+i)); //这个位置可以打印出来去掉空格之后的字符串
*(outstr + j) = '\\0';
printf("%s", *outstr); //这个位置再打印就是null了 求解为什么 感谢
void main()
char *p1 = " abcdefgdddd ";
char p2[100] = 0;
trimSpace(p1,p2);
//printf("%s", p2);
getchar();
参考技术A 通过gets输入字符串后就开始遍历字符串,如果字符不是空格直接输出并向后遍历,如果是空格输出一个空格,并向后遍历直到不是空格为止,不作输出处理。
参考代码:
#include<stdio.h>
int main()
int i;
char a[100];
gets(a);
for(i=0;a[i]!='\0';)
if(a[i]==' ')//如果是空格输出一个空格,并向后遍历直到不是空格为止,中间不输出
printf(" ");
while(a[i]==' ') i++;
else//如果字符不是空格直接输出并向后遍历
printf("%c",a[i]);
i++;
printf("\n");
return 0;
/*
输出:
I am a teacher
I am a teacher
*/ 参考技术B #include <stdio.h>#include <string.h>#include <ctype.h>void func(char *str) int i,j; char str2[81]; for(i=0,j=0;str[i]!='\0';i++) if(str[i]==' ') ; else str2[j++]=str[i]; str2[j] = '\0'; strcpy(str,str2); return;int main(void) char str[81]; printf("input a string:\n"); gets(str); puts(str); func(str); printf("***str: %s\n",str); return 0; 或者这样
#include <stdio.h>#include <string.h>#include <ctype.h>void func(char *str) int i,j; for(i=0,j=0;str[i]!='\0';i++) if(str[i]==' ') ; else str[j++]=str[i]; str[j] = '\0'; return;int main(void) char str[81]; printf("input a string:\n"); gets(str); puts(str); func(str); printf("***str: %s\n",str); return 0;追问
只能用两个指针作为传递进修修改
以上是关于c语言 字符串去掉空格的主要内容,如果未能解决你的问题,请参考以下文章