C语言实现删除字符串首尾的空格,中间的连续空格只留一个,原来字符串顺序不变

#include<stdio.h>
#include<string.h>

char * deblank(char * str)
{
char * left = str;//前面的指针,负责赋值
char * right = str;//后面寻找非空格字符的指针

while (*right)//截至字符串完
{
if (*right != ‘ ‘)
{
if (left<right)
{
*left = *right;//赋值
}
left++;
}
if (*right == ‘ ‘&&*(right + 1) != ‘ ‘)//寻找到下一个单词时,对left的操作
{
*left = ‘ ‘;
left++;
}
right++;
}
*left = ‘\0‘;
return *str != ‘ ‘ ?str:(str + 1);//防止首单词之前有空格现象
}
int main()
{
char str[] = " as adadq k ";
char *a = deblank(str);
int i;
for (i = 0; i < strlen(a); i++)
{
printf("%c",*(a+i));//输出流
}
return 0;
}

原文地址:https://blog.51cto.com/14233078/2433103

时间: 2024-10-10 12:40:31

C语言实现删除字符串首尾的空格,中间的连续空格只留一个,原来字符串顺序不变的相关文章

每天一道算法题(35)——删除字符串首尾的空格

题目: 输入字符串,删除首尾的空格.单词中间只留下一个空格. 如输入"   a    b    c   "输出"a b c" 代码: public static String test1(String s) { StringBuffer sb=new StringBuffer(s.trim()); int j=0; int i; for(;j<sb.length();){ i=j; while(sb.charAt(j)==' '&&j<s

去除字符串首尾空格和特殊字符

去除字符串首尾空格和特殊字符 用户在输入数据时,经常会在无意中输入多余的空格,在有些情况下,字符串中不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符.在PHP中提供了trim()函数去除字符串左右两边的空格和特殊字符.ltrim()函数去除字符串左边的空格和特殊字符.rtrim()函数去除字符串中右边的空格和特殊字符. 1.trim()函数 trim()函数用于去除字符串开始位置以及结束位置的空格,并返回去掉空格后的字符串. 语法格式如下: string trim(string

[py]str list切片-去除字符串首尾空格-递归思想

取出arr的前几项 #方法1 print([arr[0], arr[1]]) #方法2 arr2 = [] for i in range(2): arr2.append(arr[i]) print(arr2) #方法3 -切片 print(arr[:2]) 切片操作 参考 可以操作序列,如str list 取出最后一项 取出第一项 取出前10项 s[:10] 取出后10项 s[-10:] 删除首项 s[1:] 删除最后一项 s[:-1] ## 第一波 arr = [0, 1, 2, 3, 4]

去除字符串首尾的空格

使用正则去除字符串首尾的空格. 分享三个去除字符串首尾空格的方法. 第一种,只调用一次replace方法 function trim(str){ return (str || "").replace(/^\s+|\s+$/g,""); } assert(trim(" #id div.class ") == "#id div.class", "Extra whitespace trimmed from a select

程序设计-----字符串中删除连续空格,只保留一个空格 数中删除连续相同的数,只保留一个数

一.问题描述 输入一个字符串,注意是可以带空格的,我们所要做的是如果字符之间有很多个连续的空格,我们只需要保留一个空格,并输出显示. 有一个类似的问题,是将一个数中连续相同的数删除掉,只保留其中一个数,如3456667,转化为34567.这个问题与字符串的问题大体上是一致的, 只是字符串限定了只有连续的空格需要处理,连续的其他字符是可以接受的,如abbbc是满足条件的,而a    bbb     ccc则要转换为a bbb ccc. 二.问题分析 在书写程序的过程中,首先的思路是以空间换取时间,

js trim() 去掉字符串首尾空格

通常在表单验证,取输入框文本时都需要把取到的字符串首尾空格去掉. 现在常用的浏览器版本已经原生支持了trim()方法,JQ很早的版本也实现了对该方法的支持. 无聊时候可以关心下是怎么实现的,有时笔试面试也会问到,顺便复习下正则. 去掉首尾空格+用正则,无非就是找到首尾匹配到的空格字符,然后把它/他们replace掉.明白大道理,却有条条大路通罗马. 1.常规方法:正则分别匹配首.尾空格,然后去掉 1 function trim(str){ 2 return str.replace(/^\s\s*

去掉字符串首尾的空格

写一个字符串扩展 #import "NSString+Additions.h" //去掉首尾的空格 判断字符串是否为空 +(BOOL) isEmpty {    return nil == self    || 0 == [[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length];}//去掉字符串首尾的空格 -(NSString *)trim{    return  [s

【Python实践-4】切片操作去除字符串首尾的空格

1 #利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法 2 def trim(s): 3 while s[0:1]==' ': 4 s=s[1:] 5 while s[(len(s)-1):len(s)]==' ': 6 s=s[:-1] 7 return s 8 9 s=input('请输入一个字符串:') 10 print('去除首尾空格后',trim(s)) 知识点: 取一个list或tuple的部分元素,比如取list的前3个元素,对这

【iOS】去除字符串首尾空格或某字符

在iOS的实际开发中,常会出现需要去除空格的情况,总结有三种情况: 去除字符串首尾连续字符(如空格): 去除字符串首部连续字符(如空格): 去除字符串尾部连续字符(如空格): 去除字符串首尾连续字符(如空格) NSString *a = @" a sdf "; [a stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 去除字符串首部连续字符(如空格): NSString