最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

關(guān)于指針數(shù)組的問題,為什么最后輸入的字符串把之前的字符串給覆蓋掉了?運(yùn)行結(jié)果有問題

關(guān)于指針數(shù)組的問題,為什么最后輸入的字符串把之前的字符串給覆蓋掉了?運(yùn)行結(jié)果有問題

C++
顧玌 2015-12-02 21:28:58
#include<iostream.h> #include<string.h> int?sort(char?*book[],int?num) { int?i,j; char?*temp; for(j=1;j<=num-1;j++) for(i=0;i<num-1-j;i++) if(strcmp(book[i],book[i+1])>0) { temp=book[i]; book[i]=book[i+1]; book[i+1]=temp; } return?0; } int?main() { int?i,n; char?*book[10]; char?a[10]; cout<<"請輸入字符串?dāng)?shù)量:"; cin>>n; cout<<"請輸入字符串:"<<endl; for(i=0;i<n;i++) { cin>>a; book[i]=a; } sort(book,n); for(i=0;i<n;i++) cout<<book[i]<<endl; return?0; }
查看完整描述

1 回答

已采納
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊

book是一個(gè)存char指針的數(shù)組,a就是一個(gè)char數(shù)組。那么在main的for循環(huán)中:

cin>>a; ?// 將輸入的字符串存入a

book[i]=a; ?// 把a(bǔ)的地址存入book[i],問題就在這里,book中的元素都是指向a的!

問題就在于:你設(shè)計(jì)的book并沒有真正存入輸入的字符串,其中只是保存了幾個(gè)指向字符串的指針,而且還都是指向同一個(gè)字符數(shù)組的。 所以book中體現(xiàn)的所有字符串都是你最后輸入的那個(gè)。

后面sort函數(shù)中對字符串的比較也沒有意義了。

查看完整回答
反對 回復(fù) 2015-12-03
  • 顧玌
    顧玌
    那我應(yīng)該要怎么改,才能把輸入的字符串存到數(shù)組里
  • onemoo
    onemoo
    你可以將book設(shè)計(jì)成實(shí)際存儲字符的數(shù)組,比如 char book[10][10] 之類的。 在每一次讀取輸入后,都要將a中的字符逐個(gè)復(fù)制到book里的適當(dāng)位置上。 這樣能確保這些字符串是“實(shí)際”存儲在book中的。
  • 顧玌
    顧玌
    明白了,謝謝
  • 1 回答
  • 0 關(guān)注
  • 1570 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號