1. 程式人生 > >C語言_刪除字元函式

C語言_刪除字元函式

  編寫一個函式del().用於從給定字串中刪除一部分。傳輸三個引數,一個待刪除字串,一個刪除起始位置(從0開始),一個刪除長度.

分析:

       已經知道陣列(sum),刪除位置(del),刪除長度(len)

        char 字串的長度的結束會加上‘\0’->末端符號

比如:char sum[]="Hello world!";

   在其實計算機會把它理解為:sum[]={'H','e','l','l','o',' ','w','o','r','l','d','!'};

  在記憶體裡面'H','e','l','l','o',' ','w','o','r','l','d','!','\0'->多一個末端符號

我們可以移動末端符號的位置來標記陣列結束位置

陣列abcdef 刪除位置:2刪除長度為:2

        a b c d e f

        | 1 |  3  |2 |

        1,2區域是要保留,第3要刪除的

        所有我們要找到對應的位置然後替換

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void del(char[],int,int);
int main(int argc, const char * argv[]) {
    printf("輸入字串:");
    char sum[50];
    gets(sum);
    printf("刪除位置:");
    int del_1=0;
    scanf("%d",&del_1);
    printf("刪除長度:");
    int len;
    scanf("%d",&len);
    del(sum,del_1,len);
    for(int i=0;i<strlen(sum);i++)
    {
        printf("%c",sum[i]);
    }
    printf("\n");
    return 0;
}
void del(char sum[],int del,int len)
{
    int i=0;
    for (; i<strlen(sum)-len-del; i++)
    {
        sum[del+i]=sum[len+del+i];
    }
    sum[del+(strlen(sum)-len-del)]='\0';
    
}


相關推薦

C語言_刪除字元函式

  編寫一個函式del().用於從給定字串中刪除一部分。傳輸三個引數,一個待刪除字串,一個刪除起始位置(從0開始),一個刪除長度. 分析:        已經知道陣列(sum),刪除位置(del),刪除長度(len)         char 字串的長度的結束會加上‘\0’

c語言_指標型函式

 函式指標變數      在C語言中,一個函式總是佔用一段連續的記憶體區,而函式名就是該函式所佔記憶體區的 首地址。我們可以把函式的這個首地址(或稱入口地址)賦予一個指標變數,使該指標變數指 向該函式。然後通過指標變數就可以找到並呼叫這個函式。我們把這種指

C語言_自定義函式使用用例

1 . 實現一個函式,列印乘法口訣表,口訣表的行數和列數自己指定 輸入9,輸出9*9口訣表,輸出12,輸出12*12的乘法口訣表。 #include<stdio.h> int m

c語言 解析常用字元操作函式

       在c語言中有很多的字元操作函式,而我們經常用到的字元操作函式有strcpy ,strncpy ,strcat ,strcmp ,strlen ,strlwr ,strupr ,gets ,puts ,等等很多很多。    

C語言_函式遞迴舉例

1.遞迴和非遞迴分別實現求第n個斐波那契數。 //求第 n 個斐波那契數 #include <stdio.h> #include <stdlib.h> int Fib1(int n) { if (n == 1 || n == 2) { re

C語言-陣列、字元指標陣列函式介面與使用

#include <stdio.h> #include <stdlib.h> typedef char* myString; //#define MY_STRING #if

C語言下使用iconv函式實現字元編碼轉換

1.iconv相關函式介紹 iconv命令是用來轉換檔案的編碼方式的(Convert encoding of given files from one encoding to another),比如它可以將UTF8編碼的轉換成GB18030的編碼,反過來也行。一般linux下包含iconv指令: 格式:ico

C語言_在自定義函式裡使用結構體_Cplus14.6

#include<stdio.h> #define FUNDLEN 50 struct fund {char bank[FUNDLEN];double bankfund;char save[FUNDLEN];double savefund; }; double

C語言】實現一個函式,可以左旋字串中的k個字元

.實現一個函式,可以左旋字串中的k個字元。 AABCD左旋一個字元得到ABCDA AABCD左旋兩個字元得到BCDAA 思路: 1.如果直接進行左移,肯定會存在陣列前面的元素丟失。 解決辦法:

C語言之定義一個函式,實現對字串做如下操作:當字元為字母時,大小寫互換,當字元為數字時,原樣輸出,當有其它字元出現時,結束操作,返回已處理的字串

Action(){       char str[]={"tEst234%^road"};int len = sizeof(str)/sizeof(char);//strTest2呼叫函式lr_output_message("%s",strTest2(str,len)); r

C語言_動態連結串列的簡單建立與節點刪除

程式詳解:        1、輸入學生的姓名和年齡,進行順序排列。        2、刪除其中某位學生的資料 #include<stdio.h> #include<stdlib.h> #include<string.h> #define

c語言:用getchar函式讀入兩個字元給c1,c2,用putchar和printf輸出。思考問題

用getchar函式讀入兩個字元給c1,c2,分別用putchar和printf輸出這兩個字元。思考以下問題:(1)變數c1和c2定義為字元型還是整型?或二者皆可?(2)要求輸出c1和c2的ASCII碼,應如何處理?(3)整形變數和字元變數是否在任何情況下都可以互相代替?ch

C語言實驗——刪除指定字元 (sdut oj)

C語言實驗——刪除指定字元 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 從鍵盤輸入一個字串給str和一個字

c語言_文件操作_FILE結構體小解釋

hold 輸出 def 系統 span fopen 大小 round typedef 參考文檔來自:https://www.cnblogs.com/haore147/p/3648395.html 我們通過fopen返回一個文件指針(指向FILE結構體的指針)來進行文件操作。

C語言訓練-2557-分段函式

Problem Description 今天,希望你能用程式裡的函式實現數學裡的分段函式,加油哦。 這個分段函式長得是這個樣子的: F(x) = log2(x) 0<x<10 = |x|+sin(x) x<0 =0 x=0 =x^2 x>=10 Input 輸入包含多

C語言_操作符

       操作符可以分很多的類,例如:算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關係操作符 邏輯操作符 條件操作符 逗號表示式 下標引用,函式呼叫和結構成員.這篇部落格則是把每類操作符介紹一下. 算術操作符: +  -

C語言:如何用函式實現2-100以內素數的判別

C語言中如何用函式實現2-100以內素數的判別 #include<stdio.h> #include<math.h> int isPrime(int);//函式宣告 int main() { int i; for(i = 2; i <= 100;

C語言_日曆

編寫一個日曆程式,以2000年為基準,要求輸入一個年月,輸出對應月份的日曆表 執行結果: 程式碼如下: #include <stdio.h> #include <stdlib.h> #include <assert.h> int

C語言_堆的基本操作

本片部落格主要包含一下幾個內容: 堆的基本操作 1、建立堆 2、調整堆(向下調整) 3、插入 4、移除堆頂元素 5、返回堆元素個數 6、判斷是不是空堆 7、返回堆頂元素 8、向上調整堆 9、交換兩個數 10、判斷堆是否已滿,如果滿了,就增容;如果沒有滿,就

C語言_二叉樹的基本操作及常見面試題

本片部落格主要包含以下內容: 和二叉樹操作相關的佇列基本操作 初始化 入佇列 判斷佇列是否為空 出佇列,返回對頭元素 和二叉樹相關的棧的基本操作 初始化 入棧 出棧 判空 返回棧頂元素並出棧 返回棧頂元素不出棧