精华内容
下载资源
问答
  • 是为字符串使用前导来补充字符串,令其长度一致。 相反,如果我们把带有前导零的字符串,去除这些前导的零。我们又需要怎样处理呢? SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ===...

    在这篇《前导或后导字符串https://www.cnblogs.com/insus/p/10842839.html

    中。是为字符串使用前导来补充字符串,令其长度一致。

    相反,如果我们把带有前导零的字符串,去除这些前导的零。我们又需要怎样处理呢?

     

    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    -- =============================================
    -- Author:      Insus.NET
    -- Create date: 2019-05-13
    -- Update date: 2019-05-13
    -- Description: 删除字符串前导的零
    -- =============================================
    CREATE FUNCTION [dbo].[svf_TrimLeadingZero]
    (
        @InputString NVARCHAR(MAX)
    )
    RETURNS NVARCHAR(MAX)
    AS
    BEGIN    
        DECLARE @position INT = 1, @len INT = LEN(@InputString)
        DECLARE @trimString NVARCHAR(MAX) = SUBSTRING(@InputString,@position, @len)
       
        WHILE @position <= @len
        BEGIN
            DECLARE @d NVARCHAR(2) = SUBSTRING(@InputString, @position, 1)
            IF LEN(ISNULL(@d,N'')) > 0 AND (@d LIKE '%[^0-9]%' OR @d > 0)
            BEGIN
                SET @trimString = SUBSTRING(@InputString,@position, @len)    
                BREAK;
            END
            SET @position = @position + 1
        END
        RETURN @trimString
    END
    GO
    Source Code

     

    列举几个实例:

     

    转载于:https://www.cnblogs.com/insus/p/10854419.html

    展开全文
  • 145.删除字符串前导和后导‘*’号

    千次阅读 2015-07-02 13:12:22
    函数fun的功能是:值删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。编写函数时,不得使用c语言提供的dev...

    假定输入的字符串中只包含字母和*号。函数fun的功能是:值删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。编写函数时,不得使用c语言提供的dev字符串函数。


    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    void fun(char *a, int n, int h, int e)
    {
    	int i;
    	for (i = 0;i < n - h - e;i++)
    		a[i] = a[h + i];
    	a[i] = '\0';
    }
    int main()
    {
    	char s[81], *t, *f;
    	int m = 0, tn = 0, fn = 0;
    	printf("Enter a string :\n");
    	gets(s);
    	t = f = s;
    	while (*t)
    	{
    		t++;
    		m++;
    	}
    	t--;
    	while (*t == '*')
    	{
    		t--;
    		tn++;
    	}
    	while (*f == '*')
    	{
    		f++;
    		fn++;
    	}
    	fun(s, m, fn, tn);
    	printf("The string after deleted:\n");
    	puts(s);
    	system("pause");
    	return 0;
    }


    展开全文
  • 请编写函数fun,它的功能是:只删除字符串前导和尾部的号,串中字母之间的号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导号的个数,形参e给出了字符串中最后号的个数。在编写函数时,不得使用C语言...

    104.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。
    例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G。

    #include <stdio.h>
    char *fun(char *s){
    	int h=0;
    	int n=0;
    	//计算字符串长度
    	while(s[n]!='\0'){
    		n++;
    	}
    	for(int i=0;i<n;i++){
    		if(s[i]=='*'){
    			h++;//记录前导的*数量 
    		}else{
    			break;
    		}
    	}
    	printf("字符串长度为%d,前导的*有%d个\n",n,h);
    	for(int j=0;j<n-h;j++){
    		s[j]=s[h++];
    	}
    	s[n-h]='\0';
    	return s;
    }
    int main() {
    	char s[30];
    	printf("请输入字包含字母和*的字符串:");
    	gets(s);
    	printf("结果为:%s",fun(s));
    	return 0;
    }
    

    示例:
    结果

    C语言编程练习题 104/100+
    *本套题可用于复习一些学校考研复试的C程序设计科目
    *本套题可用于复习二级C
    *关注微信公众号“程序艺术室”回复“C试题”获取包含本专栏在内的其他C试题文档
    *您的点赞加关注,是我更新的最大动力!

    展开全文
  • 1、编写一个程序把所有字符串前导*保留,其他的*号都删除 效果: ***shd***swbd*dwh 转换成 ***shdswbddwh 算法分析,先研究一个字符串 char a[100]="***shd***swbd*dwh",b[100]=""; int i...

    1、编写一个程序把所有字符串的前导*保留,其他的*号都删除
    效果:        ***shd***swbd*dwh  转换成  ***shdswbddwh 
    算法分析,先研究一个字符串

     

    char a[100]="***shd***swbd*dwh",b[100]="";
    int  i,j,k=0;
    puts(a);
    for(i=0;a[i];i++)
    {   
        if(a[i]!='*')
        {
            break; 
        }
        b[k++]=a[i];
    }
    for(j=i;a[j];j++)//下标跟随法
    {
         if(a[j]=='*')
        {
            continue; 
        }
        b[k++]=a[j];
    }
    b[k]='\0';
    puts(b);
    
    

    如果是一个二维字符数组呢?
    //前导*保留,后面出现的*全部删除




     

    给定几个字符串,编写程序把字符串的前导*移动到末尾
    ***shd***swbd*dwh  转换成    shd***swbd*dwh*** 

    char a[4][100]={"***sh**d","***sw76***b","***d*d*","**w12h***"};
    int  i,j,k=0;
    for(i=0;i<4;i++)
    {  
        puts(a[i]);
    }
    puts("_______");
    for(i=0;i<4;i++)
    {   
        for(j=0;a[i][j];j++)//先考察第i个字符串a[i]
       { 
             if(a[i][j]!='*')//先要越过a[i]的前导*
             {
                 break; 
             }
       }
       k=j;//让k与j同步,发生联系
       for(;a[i][j];j++)//下标跟随法
       {
            if(a[i][j]=='*')
            {
                  continue; 
            }
            a[i][k++]=a[i][j];
       }
       a[i][k]='\0';
    }
    for(i=0;i<4;i++)//输出结果
    {  
        puts(a[i]);
    }
    
    

    方法二
    使用数组b来装入数组a

     

    char a[4][100]={"***sh**d","***sw76***b","***d*d*","**w12h***"},b[4][100]={""};
    int  i,j,k=0,m,t;
    for(i=0;i<4;i++)
    {  
        puts(a[i]);
    }
    puts("_______");
    for(i=0;i<4;i++)
    {   
        for(j=0;a[i][j];j++)//先考察第i个字符串a[i]
        { 
             if(a[i][j]!='*')//先要越过a[i]的前导*
            {
                break; 
            }
    
         }
        m=j;    
        k=0;
        for(;a[i][j];j++)//下标跟随法
        {
             b[i][k++]=a[i][j];
        }
        for(t=0;t<m;t++)
        {
            b[i][k++]='*';
        }
        b[i][k]='\0';
     }
        for(i=0;i<4;i++)
       {  
           puts(b[i]);
       }
    /*方法二*/
    
    
    char a[4][100]={"***sh**d","***sw76***b","***d*d*","**w12h***"};
    int  i,j,k=0,m,t;
    for(i=0;i<4;i++)
    {  
        puts(a[i]);
    }
    puts("_______");
    for(i=0;i<4;i++)
    {   
          for(j=0;a[i][j];j++)//先考察第i个字符串a[i]
           { 
                if(a[i][j]!='*')//先要越过a[i]的前导*
               {
                  break; 
               } 
          }
      //退出循环后,把j的值保存起来,移位需要差距
       k=j;//让k与j同步,发生联系
       for(;a[i][j];j++)//把后面元素向前移
       {
           a[i][j-k]=a[i][j];//a[i][0]
       }
    //这时j已经跑到最后了,需要在字符串后面加上j-k个*号
       for(m=j-k;m<j;m++)//再加上前面的*号
       {
          a[i][m]='*';
       }
       a[i][j]='\0';
    }
    for(i=0;i<4;i++)
    {  
        puts(a[i]);
    }
    
    
    
    给定几个字符串,编写程序把字符串的前导*移动到末尾,同时还要删除中间出现的*号
    ***shd***swbd*dwh  转换成   shdswbddwh*** 
    
    
    
    char a[4][100]={"***sh**d","***sw76***b","***d*d*","**w12h***"},b[4][100]={""};
    int  i,j,k=0,m,t;
    for(i=0;i<4;i++)
    {  
        puts(a[i]);
    }
    puts("_______");
    
    
    for(i=0;i<4;i++)
    {   
    for(j=0;a[i][j];j++)//先考察第i个字符串a[i]
        { 
    if(a[i][j]!='*')//先要越过a[i]的前导*
    {
    break; 
    }
    
    }
    m=j;    
    k=0;
    for(;a[i][j];j++)//下标跟随法
        {
    if(a[i][j]=='*')
    {
    continue;
    }
    b[i][k++]=a[i][j];
    }
    for(t=0;t<m;t++)
    {
    b[i][k++]='*';
    }
    b[i][k]='\0';
    }
    for(i=0;i<4;i++)
    {  
    puts(b[i]);
    }

     

    展开全文
  • 请编写函数fun,它的功能是:除了字符串前导和尾部的号之外,将串中其他号全部删除。形参h已指向字符串中第—个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,若...
  • 请编写函数fun,它的功能是:除了字符串前导的号之外,将串中其他号全部删除。在编写函数时,不得使用C语言提供的字符串函数。 例如,若字符串中的内容为ABCDEFG*******,删除后,字符串中的内容则应当是****ABCDEFG...
  • 编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其他的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。代码如下:#...
  • 例题:假定输入的字符串中只包含字母和 “#”号,请编写函数fun,它的功能是:除了字符串前导的 “#”号之外,将串中其他“#”号全部删除。在编写函数时,不得使用C语言提供的字符串函数 例如:若字符串中的内容为 ...
  • 请编写函数fun,它的功能是:除了字符串前导和尾部的 “#”号之外,将串中其他 “#”号全部删除。形参r已指向字符串中第一个字母,形参v已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。...
  • sql删除字符串前后的空格 与Java不同,Microsoft SQL Server 2008、2012、2014,甚至最新版本都没有内置的trim()函数,该函数可以删除给定String中的前导和尾随空格。 但是,SQL Server确实具有两个内置函数LTRIM()...
  • 删除字符串前导空格,中间和尾部的空格不删除。 例如,字符串为" A BC DEF",删除后的结果为"A BC DEF"*/ #include<stdio.h> #include<string.h> main() { char a[100],b[100]; int i=0,j=0; ...
  • 编写函数del(char str[])将字符串str中的除头部前导*和后导*以外的*。编写主函数,在主函数中定义字符数组s[80],从键盘输入一字符串给s,通过调用函数del,将字符数组s中的中部的*删除,并输出删除后的字符串, 不...
  • 也有的提供了函数trim来删除字符串两端的空白字符。Perl里没这些函数因为简单的正则表达式替换就能实现这个目的(不过我确信CPAN有很多模块实现了这些函数)。事实上这太简单了以至于成了帕金森琐碎定理里的一个显著...
  • <p>I've got several strings of the type id1, id2, id125, id1258, etc. <p>What I want to achieve using ... </div>
  • 请编写函数fun,它的功能是:将字符串中的前导号全部删除,中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*Bc*DEF*G,删除后,字符串中的内容应当是:A*Bc*DEF*G在编写函数时,不得使用C语言提供的字符...
  • ...br></code> points, it'll break the status view. <p>Now, before anyone marks this as a duplicate; If have tried the following approaches (and two more from posts which I can no longer find) in ...
  • 问题描述: 在进行字符串操作时,由于字符串中存在较多的空格,因此需要考虑取消字符串中的空格 问题解决: (1)删除字符串中的前导空格(字符串的前面的空格): 注意:这里使用递归调用(从头开始每个字符进行...
  • 1. strip() 它的函数原型:string.strip(s[, chars]),它返回的是字符...)如果strip()的参数为空,那么会默认删除字符串头和尾的空白字符(包括\n,\r,\t这些)。 #这里注意字符串a的两端都有一个空白字符,字符a...
  • 请编写函数fun,它的功能是:使字符串前导号不得多于n个;若多于n个,则删除多余的号;若少于或等手n个,则什么也不做,字符串中间和尾部的号不删除。 例如,若字符串中的内容为ABCDEFG,假设n的值为4,删除后,...
  • 1、删除字符串中的指定字符,一般采用的方法是保留不用删除的字符; 2、字符串结束标志’\0’ #include &lt;stdio.h&gt; void fun( char *a ) { /* *指针p指向字符串中的第一个字母*/ while(*p=='*') p+...
  • 字符串删除重复字符 介绍 (Introduction) 我经常回答一些问题,其中的字符串需要“清除”多个空格字符。 最常见的解决方法是删除前导或尾随空格。 对于这个问题,有非常方便的固有VB函数(LTrim,RTrim,Trim)。 ...
  • 与Java不同,Microsoft SQL Server 2008、2012、2014,甚至最新版本都没有内置的trim()函数,该函数可以从给定的String中删除前导和尾随空格。 但是,SQL Server确实具有两个内置函数LTRIM()和RTRIM()来删除前导和...
  • 假定输入的字符串中只包含字符和*号,函数fun的功能是:除了字符串前导的*号之外,将其他的*号全部删除。在编写函数时,不得使用c语言提供的字符串函数。 #define _CRT_SECURE_NO_WARNINGS #include void fun...
  • <p>I'm trying to trim the leading and trailing zeros from a string that contains a numeric value used to represent a percentage. <p>I wrote this ugly block of code that combines rtrim(), ltrim() ...
  • string remove_blank_in_str(string str) { string result; size_t length = str.size(); size_t begin = 0; while(str[begin]==' '){ begin++; } wh

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 221
精华内容 88
关键字:

删除字符串前导