關閉→
當前位置:全書匯>簡歷>求職簡歷>筆試題目>C語言字元串筆試題

C語言字元串筆試題

全書匯 人氣:1.77W

C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。下面就由本站小編爲大家介紹一下C語言字元串筆試題的文章,歡迎閱讀。

C語言字元串筆試題

C語言字元串筆試題篇1

對一個字元串重新排列,字母排在前面,數字排在後面,並不改變原來字母之間以及數字之間的字元順序。

[cpp] view plain copy print?

#include

#include

#include

#define N 30

/***********************************************

*函數名稱: fun

*創建時間: 20xx.12.5

*描 述: 對一個字元串重新排列,字母排在前面,數字排在後面,並不改變原來字母之間以及數字之間的字元順序。

*參 數: char * s,int *m

*返 回 值: chLetter(數組chLetter的首元素地址)

*局部變量: char chLetter[N];

* char chNumber[N];

* int i,j,k;

************************************************/

char * fun(char * s,int *m) //參數m是透過調試纔想到的

{

char chLetter[N]; //用來存放字母

char chNumber[N]; //用來存放數字

int i,j,k;

i=0; //初始化

j=0; //j用來記錄字母的個數

k=0; //k用來記錄數字的個數

for (i=0; i

{

if (s[i] >= 'A' && s[i] <= 'Z' //將字母存入chLetter

|| s[i] >= 'a' && s[i] <= 'z')

{

chLetter[j]=s[i];

j++;

}

if (s[i] >= '0' && s[i] <='9') //將數字存入chNumber

{

chNumber[k]=s[i];

k++;

}

}

chLetter[j]='';

chNumber[k]='';

*m=j+k; //用來返回最後輸入和輸出時字元的個數

strcat(chLetter,chNumber);

return chLetter;

}

//主函數

void main

{

char s[N];

int i;

int m;

char *p;

p=NULL;

printf("請輸入字元串(30字元以內):n");

scanf("%s",s);

p=fun(s,&m); //剛開始沒定義出這個m來現限制指針p所指數組的長度就出現了後面兩個字元亂碼

for (i=0; i

{

s[i]=p[i];

}

printf("結果爲:");

for (i=0; i

{

printf("%c",s[i]);

}

printf("n");

}

C語言字元串筆試題篇2

將s所指字元串中最後一次出現的與t1所指字元串相同的子串替換爲t2所指字元串。

[cpp] view plain copy print?

#include

#include

#include

#define N 30 //s所指字元串的最大長度

#define T 2 //t1和t2所指字元串的長度

/***********************************************

*函數名稱: fun

*創建時間: 20xx.12.5

*描 述: 將s所指字元串中最後一次出現的與t1所指字元串相同的子串替換爲t2所指字元串

*參 數: char * s,char * t1, char * t2,int *m

*返 回 值: w(數組w的首元素地址)

*局部變量: char w[N];

* char temp[T];

* char t1temp[T];

* int i,j,k,l;

************************************************/

char * fun(char * s,char * t1, char * t2,int *m) //m的作用和第一題一樣,沒m最後兩個字元會亂碼(想尋求其他方法)

{

char w[N]; //用來存放處理後的字元串

char temp[T]; //用來存放從s所指字元串中截取的子串

char t1temp[T]; //用來存放t1所指字元串

int i,j,k,l;

//向t1temp中存入t1所指字元串

for (i=0; i

{

t1temp[i]=t1[i];

}

t1temp[T]='';

//求m所指的值

for (i=0;i

{

if (s[i]=='')

{

*m=i;

}

}

//尋找相同時的最後一個字元的下標

for (i=0; i

{

l=0;

for (j=i; j<(i+T); j++,l++) //截取長度爲T的子串存到temp中

{

temp[l]=s[j];

}

temp[T]='';

if (strcmp(t1temp,temp) == 0)

{

k=i; //k記錄相同時的最後一個字元的下標

}

}

for (i=0; i

{

j=0;

if (i>=k && i<(k+T)) //在找到的k點處開始換值

{

w[i]=t2[j]; //換值

j++;

}

else

{

w[i]=s[i];

}

}

return w;

}

//主函數

void main

{

char s[N];

char t1[T];

char t2[T];

int i;

int m;

char *p;

p=NULL;

printf("請輸入字元串(20字元以內):");

scanf("%s",s);

printf("請輸入將要被替換的子字元串(僅限兩個字元):");

scanf("%s",t1);

printf("請輸入將要用來替換的字字元串(僅限兩個字元):");

scanf("%s",t2);

p=fun(s,t1,t2,&m);

for (i=0; i

{

s[i]=p[i];

}

printf("結果爲:");

for (i=0; i

{

printf("%c",s[i]);

}

printf("n");

}

C語言字元串筆試題篇3

將s所指的字元串中ASCII值爲奇數的字元刪除,串中剩餘字元形成一個新串放在t所指的數組中。

[cpp] view plain copy print?

#include

#include

#include

#define N 30

/***********************************************

*函數名稱: fun

*創建時間: 20xx.12.6

*描 述: 將s所指的字元串中ASCII值爲奇數的字元刪除,串中剩餘字元形成一個新串放在t所指的數組中。

*參 數: char * s,int * m

*返 回 值: return t,(t爲指向數組的指針)

*局部變量: char * t;

* char temp[N];

* int i,j=0;

************************************************/

char * fun(char * s,int * m)

{

char * t;

char temp[N]; //臨時的數組,用來存放t所指的數組

int i,j=0;

t=temp;

for (i=0; i

{

if (s[i]%2==0 )

{

temp[j]=s[i]; //如果是偶數,賦值給t所指的數組

j++;

if (s[i]=='') //找到m的值先要找出輸入了多少個字元

{

break;

}

}

}

*m=j; //找到m的值即輸出結果的長度

t[j]='';

return t;

}

//主函數

void main

{

char s[N];

int i;

int m;

char *p;

p=NULL;

printf("請輸入字元串(30字元以內):n");

scanf("%s",s);

p=fun(s,&m); //剛開始沒定義出這個m來現限制指針p所指數組的長度就出現了後面兩個字元亂碼

for (i=0; i

{

s[i]=p[i];

}

printf("結果爲:");

for (i=0; i

{

printf("%c",s[i]);

}

printf("n");

}

TAG標籤:#語言 #字元串 #筆試 #