<C语言>消除字符串中的空格--附:消除fgets()函数吃进去的回车符
2017-08-21 20:55
465 查看
作者:wsg
时间:2017年8月21日
/*
去掉字符串中的空格
版本一
*/
#include <stdio.h>
#include <string.h>
void strip(char *s)
{
int i,j;
for(i=0; s[i]; i++) //i<strlen(s)
{
if(s[i] == ' ')
{
for(j=i; s[j]; j++) //j<strlen(s)
{
s[j] = s[j+1];
}
i--;
}
}
}
int main(void)
{
char arr[200];
bzero(arr, 200);
printf("input:");
fgets(arr, 200, stdin);
strip(arr);
printf("%s", arr); //%s后面没有\n换行符,但是程序运行的时候会换行,说明fgets吃掉了回车符
}
//消除字符串中的空格--消除fgets函数吃掉的回车
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char arr[200]; //定义一个200个元素的char型数组
bzero(arr, 200); //将arr的前200个字节置零
//从键盘输入字符串,不能用scanf,因为scanf输入的字符串不能有空格
printf("输入:");
fgets(arr, 200, stdin); //缺点:fgets会吃掉回车,将回车算作一个字符
//若用gets函数,不会吃进去回车,但是编译时会有警告
char new[200];
bzero(new, 200);
strncpy(new, arr, strlen(arr)-1); //消除吃掉的回车:将长度减1,即把末尾的回车字符去掉了
int s = strlen(new);
int i,j;
for(i=0; i<s; i++)
{
if(new[i] == ' '
) //如果字符串中有空格符,就把后面的字符一次往前移一位
{
for(j=i; j<s; j++)
{
new[j] = new[j+1];
}
i--;
}
}
printf("去掉空格后:%s", new);
return 0;
}
时间:2017年8月21日
/*
去掉字符串中的空格
版本一
*/
#include <stdio.h>
#include <string.h>
void strip(char *s)
{
int i,j;
for(i=0; s[i]; i++) //i<strlen(s)
{
if(s[i] == ' ')
{
for(j=i; s[j]; j++) //j<strlen(s)
{
s[j] = s[j+1];
}
i--;
}
}
}
int main(void)
{
char arr[200];
bzero(arr, 200);
printf("input:");
fgets(arr, 200, stdin);
strip(arr);
printf("%s", arr); //%s后面没有\n换行符,但是程序运行的时候会换行,说明fgets吃掉了回车符
}
//消除字符串中的空格--消除fgets函数吃掉的回车
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char arr[200]; //定义一个200个元素的char型数组
bzero(arr, 200); //将arr的前200个字节置零
//从键盘输入字符串,不能用scanf,因为scanf输入的字符串不能有空格
printf("输入:");
fgets(arr, 200, stdin); //缺点:fgets会吃掉回车,将回车算作一个字符
//若用gets函数,不会吃进去回车,但是编译时会有警告
char new[200];
bzero(new, 200);
strncpy(new, arr, strlen(arr)-1); //消除吃掉的回车:将长度减1,即把末尾的回车字符去掉了
int s = strlen(new);
int i,j;
for(i=0; i<s; i++)
{
if(new[i] == ' '
) //如果字符串中有空格符,就把后面的字符一次往前移一位
{
for(j=i; j<s; j++)
{
new[j] = new[j+1];
}
i--;
}
}
printf("去掉空格后:%s", new);
return 0;
}
相关文章推荐
- c语言字符串库函数#include<string.h>
- c语言字符串库函数#include<string.h>
- c语言输入与输出库函数#include<stdio.h>
- 【c语言】有一个函数: x < 1 --- y = x 1 <= x < 10 --- y = 2 * x - 1 x >= 10 --- y = 3 * x - 11 输
- 【c语言】字符串替换空格:请实现一个函数,把字符串中的每一个空格替换成“%20”
- 【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”
- <C语言>打印(输)出系统时间-----time相关函数
- C语言字符串与文件读写函数 fgets(),fputs()......
- <C语言>函数作实参传递给另一函数
- 【C语言】【面试题】【笔试题】.字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。
- C语言<time.h>中srand(),rand()等等函数产生随机数的用法。
- C/C++字符串查找函数 <转>
- C语言标准库概览详述[9]-实用函数<stdlib.h>
- C语言进阶之路-----用函数使字符串间每个字符后加一个空格
- 可以将一个字符串左旋K个字符(0<=k<=字符串长度)的三种函数写法【C语言】
- 给定一个字符串,里面用空格分开为多个(>=6)部分组合,如:01 02 03 04 05 06 07 …… 写一个函数返回任意6个组合的字符串: 输出格式实例: 01 02 03 04 05 06 0
- <C语言 入栈顺序>为什么函数入栈顺序从右往左?
- 程序猿之---C语言细节22(函数返回指针注意事项<悬空指针>、查看进程可以分配的内存大小)
- C语言字符串读取函数 gets()与fgets()