串的基本操作(0位置存長度方式)

2021-08-20 07:21:18 字數 2192 閱讀 1393

#include

#include

#include

#include

#define maxn 50

#define ok 1

#define error 0

void creat(char *);///建立串

int getsubstr(char *,int ,int ,char *);///求子串

int delsubstr(char *,int ,int );///刪除子串

int inssubstr(char *,char *,int );///插入子串

int repstr(char *,char *,int );///置換子串

void print(char *s);///輸出串

void clear();///清屏

int main()

switch(choose)

else

puts("error");///操作失敗,提示使用者

break;

case 2:

printf("請輸入你需要建立的串:");

creat(str);///建立串

printf("主串如下:");

print(str);///輸出主串,提示使用者剛才的輸入

printf("請輸入要刪除的首位置和長度:");

scanf("%d%d",&start,&len);

if(delsubstr(str,start,len))///根據操作完的返回值進行判斷

else

puts("error");///提示使用者操作錯誤

break;

case 3:

printf("請輸入你需要建立的第乙個串:");

creat(str);///建立主串

printf("請輸入你需要建立的第二個串:");

creat(sub_str);///建立子串

printf("請輸入你要在插入第乙個串的位置:");

scanf("%d",&pos);

if(inssubstr(str,sub_str,pos))///操作後對返回值進行判斷

else

puts("error");///提示使用者操作錯誤

break;

case 4:

printf("請輸入你需要建立的第乙個串:");

creat(str);

printf("請輸入你需要建立的第二個串:");

creat(sub_str);

printf("請輸入你要在插入第乙個串的位置:");

scanf("%d",&pos);

if(repstr(str,sub_str,pos))///操作後對返回值進行判斷

else

puts("error");///操作失敗提示使用者

break;

default :printf("輸入錯誤,請重新輸入\n");break;

}clear();

}while(1);

return 0;

}///輸出串

void print(char *s)

///建立串

void creat(char *str)///建立子串,主要是用把之前輸入的串賦值到結構體裡,並把長度記錄下來

str[0]=i;///輸入完之後,i是它的長度,相應賦值到0的位置

}///求子串

int getsubstr(char *s,int start,int len,char *sub_str)

///刪除子串

int delsubstr(char *s,int start,int len)

///插入子串

int inssubstr(char *s,char *sub_str,int pos)

for(j=0,i=pos+sub_str[0];j=s[0])///如果pos的位置已經大於等於主串的長度那就沒法銜接過去了

return error;///操作失敗返回error

for(j=1,i=pos;j<=sub_str[0];i++,j++)///替換操作,直接把進行覆蓋就行了

*(s+i)=*(sub_str+j);///pos+子串的長度之後字元乙個乙個賦值到pos+1,+2.....就實現了替換

return ok;///操作成功返回ok

}///清屏

void clear()

C語言位操作中指定的某一位數置0 置1 取反

一 指定的某一位數置1 巨集 define setbit x,y x 1 二 指定的某一位數置0 巨集 define clrbit x,y x 1 三 指定的某一位數取反 巨集 define reversebit x,y x 1 三 獲取的某一位的值 巨集 define getbit x,y x y...

8bit資料的指定位的置0或者置1操作

要求 實現對乙個8bit資料 unsigned char 型別 的指定位 例如第n位 的置0或者置1操作,並保持其他位不變。分析 首先我們需要定義position來找出第n位,用flag決定置1還是置0,如果需要置1,只需將1左移position 1相或p data 如果需要置0,只需將1左移pos...

串的基本操作

include include include include define maxn 50 define ok 1 define error 0 typedef struct strnode snode void creat snode char 建立串 int getsubstr snode i...