English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

關於C語言程式的問題

想要刪除字串中的某一位置的字元該怎麼寫
該函數名稱:stringdel(char ch[],int n)
也就是由主函數或呼叫函數把一條已知字串位址以及要刪除字串中的一個字元的位置傳給stringdel( )函數。

2007-06-26 09:17:11 · 6 個解答 · 發問者 ? 1 in 電腦與網際網路 程式設計

字串不固定
所要刪的字元位置也不固定呢
就是 字串是要使用者自行輸入的
輸入字後再跳出一行訊息說 要刪除哪個位置的字元

THX

2007-06-26 09:51:38 · update #1

to:耗呆小綿羊

Run不出來
有三個waring = =

2007-06-26 10:53:19 · update #2

To Jeff
有error無法Run

ps 那是一個還是兩個程式碼 = =?

2007-06-27 09:19:41 · update #3

6 個解答

void stringdel(char ch[], int n){
int i=0;

for( i=n; i ch[i]=ch[i+1];
}
}

void main()
{
char str[] = "this is a example!";

stringdel(str, 3);
printf("%s\n", str);
}

給您一個簡單的範例
參考參考

2007-06-27 09:03:12 補充:
void main()
{
char str[256];
printf("Please input string: ");
scanf("%s", str);
stringdel(str, 3);
printf("%s\n", str);
}
使用者可輸入字串

2007-06-27 09:04:54 補充:
void main()
{
char str[256];
int n;
printf("Please input string: ");
scanf("%s", str);
printf("請輸入刪除字元位置: ");
scanf("%d",n);
stringdel(str, n);
printf("%s\n", str);
}

2007-06-26 09:38:07 · answer #1 · answered by chen 3 · 0 0

//Power by Visual Studio 2005
#include
#include
#include
void stringdel(char ch[], int n){
char temp[32767];
int i;
strncpy(temp,ch,n-1);
for(i=n;ch[i]!=0;i++)
temp[i-1]=ch[i];
temp[i-1]='\0',strcpy(ch,temp);
}
int main(int argc, char* argv[]){
//==========START==========//
char str[]="Yahoo!Knowledge+";
stringdel(str,6),printf("%s\n",str);
//==========END==========//
printf("\n"),system("PAUSE");
return 0;
}

2007-06-28 09:32:40 · answer #2 · answered by ? 3 · 0 0

耗呆小綿羊的函數可以改成:

void stringdel2(char *str, int n) {
char temp[32767];
str[n-1]=0;
strcpy(temp, str);
strcpy(temp+n-1, str+n); // 直接拷貝後半段即可, 不用一個一個拷貝
strcpy(str, temp);
}

2007-06-26 18:56:16 · answer #3 · answered by Walala 5 · 0 0

是沒錯~
可是我想要的是不固定字串
就是使用者要自行輸入
然後跳出一行訊息要求輸入刪除哪個位置的字元

2007-06-26 16:42:51 · answer #4 · answered by ? 1 · 0 0

001jeff 的程式碼,善用C的特性,沒有畫蛇添足,簡明有效率,允堪正解。
若能在函式開頭加句 if(n>=0) ,那就更完美了。

2007-06-26 10:31:53 · answer #5 · answered by 東邪無弓 7 · 0 0

//Power by Visual Studio 2005
#include
#include
#include
void stringdel(char ch[], int n){
char temp[32767];
int i;
strncpy(temp,ch,n-1);
for(i=n;ch[i]!=0;i++)
temp[i-1]=ch[i];
temp[i-1]='\0',strcpy(ch,temp);
}
int main(int argc, char* argv[]){
//==========START==========//
char str[]="Yahoo!Knowledge+";
stringdel(str,6),printf("%s\n",str);
//==========END==========//
printf("\n"),system("PAUSE");
return 0;
}

2007-06-26 10:04:13 · answer #6 · answered by Big_John-tw 7 · 0 0

fedest.com, questions and answers