本文目錄一覽:
C語言-刪除字元串中的字元。
c語言中書寫刪除字元串中某個字元的程序的具體操作步驟如下:
1、編寫頭函數,包括「#include stdio.h.」與「#include string.h.「。
2、定義兩個相同容量的字元串儲存的變數 char a【100】; char b【100】。以及整數變數 int c;int i=0,j=0;其中a[100]是存字元串的,b【100】是存你刪除對應字元的字元串的,整數C是想刪除第幾位。j ,i 是後面for循壞中要使用到的變數。
3、編寫printf(「請輸入你的字元串」);scanf(「%s」,a);printf(「請輸入你想要刪除第幾位字元」);scanf(「%d」,c)。
這幾行代碼主要是顯示界面,以及具體想要刪除什麼字元串以及具體刪除第幾位字元使用的。
4、繼續編寫for(i=0;istrlen(a);i++) ( if(i+1!=c){ b【j】=a【i】; j++;)( printf(” %s”,b);)。
這幾行代碼邏輯語句是:只要當i+1不等於c時把a【i】裡面的字元賦給b【i】,那麼這樣當i+1=c時不把它賦給b【i】從而實現刪除功能。
5、程序編輯完畢,可以進行刪除字元了。
C語言如何實現刪除字元串中的字元
C語言刪除字元串中指定字元可以參考下面的代碼:
#includestdio.h
int main
{
char * fun(char * s);
char arg[] = “hello.cgi?name1=value1name2=value2”;
printf(“This value :%s\n”,fun(arg));
getchar();
return 0;
}
char * fun(char * s)
{
char *s1 = s; //s1指向字元串首地址
while ((*s != ‘?’) (*s != 0)) //字元不為結束符或者不為?,指向下一個字元
s++;
*s = 0; //將這個字元置為結束符
return s1;
};
擴展資料:
C語言isupper()函數:判斷一個字元是否是大寫字母
C語言isspace()函數:判斷一個字元是否是空白符
C語言isprint()函數:判斷一個字元是否是可列印字元
C語言islower()函數:判斷一個字元是否是小寫字母
C語言ldexp()函數:返回x乘以2的exponent次方(次冪)的值
C語言ldiv()函數:求兩個數的商和餘數(針對long類型)
C語言ceil()函數:求不小於x的最小整數(向上取整)
C語言floor()函數:求不大於x的最大整數(向下取整)
double atof(char *nptr) 將字元串nptr轉換成浮點數並返回這個浮點數
double atoi(char *nptr) 將字元串nptr轉換成整數並返回這個整數
參考資料來源:百度百科-C語言函數
參考資料來源:百度百科-c語言
C語言中刪除字元串
輸出的應該是uy
ioiootg吧
。
如果是把字元串中的所有子串都刪除的話可以這麼寫:
#includestdio.h
#includestring.h
main()
{
char
str[256],ch[10];
int
i,j,n,k;
puts(“input:”);
gets(str);
gets(ch);
n=strlen(ch);
for(i=0;str[i];i++){
for(j=0,k=0;ch[j]==str[i+k]ch[j]!=’\0′;k++,j++);
if(j==n)
for(j=0;str[i+j];j++)
str[i+j]=str[i+j+n];
}
puts(str);
}
如果只刪第一個可以這麼寫:
#includestdio.h
#includestring.h
main()
{
char
str[256],ch[10];
int
i,j,n,k;
puts(“input:”);
gets(str);
gets(ch);
n=strlen(ch);
for(i=0;str[i];i++){
for(j=0,k=0;ch[j]==str[i+k]ch[j]!=’\0′;k++,j++);
if(j==n){
for(j=0;str[i+j];j++)
str[i+j]=str[i+j+n];
break;
}
}
puts(str);
}
VC6.0測試通過
c語言字元串清空函數
字元串函數string.h
在頭文件string.h中定義了兩組字元串函數。第一組函數的名字以str開頭;第二組函數的名字以mem開頭。只有函數memmove對重疊對象間的拷貝進行了定義,而其他函數都未定義。比較類函數將其變數視為unsigned char類型的數組。
1.strcpy
#include string.h
char *strcpy(char *str1, const char *str2);
把字元串str2(包括’\0′)拷貝到字元串str1當中,並返回str1。
2. strncpy
#include string.h
char *strncpy(char *str1, const char *str2, size_t count);
把字元串str2中最多count個字元拷貝到字元串str1中,並返回str1。如果str2中少於count個字元,那麼就用’\0’來填充,直到滿足count個字元為止。
3.strcat
#include string.h
char *strcat(char *str1, const char *str2);
把str2(包括’\0′)拷貝到str1的尾部(連接),並返回str1。其中終止原str1的’\0’被str2的第一個字元覆蓋。
4.strncat
#include string.h
char *strncat(char *str1, const char *str2, size_t count);
把str2中最多count個字元連接到str1的尾部,並以’\0’終止str1,返回str1。其中終止原str1的’\0’被str2的第一個字元覆蓋。
注意,最大拷貝字元數是count+1。
5.strcmp
#include string.h
int strcmp(const char *str1, const char *str2);
按字典順序比較兩個字元串,返回整數值的意義如下:
小於0,str1小於str2;
等於0,str1等於str2;
大於0,str1大於str2;
6 strncmp
#include string.h
int strncmp(const char *str1, const char *str2, size_t count);
同strcmp,除了最多比較count個字元。根據比較結果返回的整數值如下:
小於0,str1小於str2;
等於0,str1等於str2;
大於0,str1大於str2;
7 strchr
#include string.h
char *strchr(const char *str, int ch);
返回指向字元串str中字元ch第一次出現的位置的指針,如果str中不包含ch,則返回NULL。
8 strrchr
#include string.h
char *strrchr(const char *str, int ch);
返回指向字元串str中字元ch最後一次出現的位置的指針,如果str中不包含ch,則返回NULL。
9 strspn
#include string.h
size_t strspn(const char *str1, const char *str2);
返回字元串str1中由字元串str2中字元構成的第一個子串的長度。
10 strcspn
#include string.h
size_t strcspn(const char *str1, const char *str2);
返回字元串str1中由不在字元串str2中字元構成的第一個子串的長度。
11 strpbrk
#include string.h
char *strpbrk(const char *str1, const char *str2);
返回指向字元串str2中的任意字元第一次出現在字元串str1中的位置的指針;如果str1中沒有與str2相同的字元,那麼返回NULL。
12 strstr
#include string.h
char *strstr(const char *str1, const char *str2);
返回指向字元串str2第一次出現在字元串str1中的位置的指針;如果str1中不包含str2,則返回NULL。
13 strlen
#include string.h
size_t strlen(const char *str);
返回字元串str的長度,’\0’不算在內。
14 strerror
#include string.h
char *strerror(int errnum);
返回指向與錯誤序號errnum對應的錯誤信息字元串的指針(錯誤信息的具體內容依賴於實現)。
15 strtok
#include string.h
char *strtok(char *str1, const char *str2);
在str1中搜索由str2中的分界符界定的單詞。
對strtok()的一系列調用將把字元串str1分成許多單詞,這些單詞以str2中的字元為分界符。第一次調用時str1非空,它搜索str1,找出由非str2中的字元組成的第一個單詞,將str1中的下一個字元替換為’\0’,並返回指向單詞的指針。
隨後的每次strtok()調用(參數str1用NULL代替),均從前一次結束的位置之後開始,返回下一個由非str2中的字元組成的單詞。當str1中沒有這樣的單詞時返回NULL。每次調用時字元串str2可以不同。
如:
char *p;
p = strtok(“The summer soldier,the sunshine patriot”, ” “);
printf(“%s”, p);
do {
p = strtok(“\0”, “, “); /* 此處str2是逗號和空格 */
if (p)
printf(“|%s”, p)
} while (p);
顯示結果是:The | summer | soldier | the | sunshine | patriot
原創文章,作者:VPEY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145941.html