為什么會這樣

uj5u.com熱心網友回復:
這代碼問題太多了。str應該是二維陣列,這樣才能保存五個字串。p的增量計算不對,應該每次增量一個字串的地址
另外還沒給p賦值,你就排序了,所以程式退出了
uj5u.com熱心網友回復:
為什么二維陣列才能放5個字串
uj5u.com熱心網友回復:
也可以是一維的。char str[20]
char * s=str;
for (int i=0;i<20;i+4)
{
scanf("%s",s);
s=s+4;
}
這樣就可以保存五個,每個字串是3個字符的字串了。
不過這就是雜耍了。還是用二維的比較好
uj5u.com熱心網友回復:
為什么是3個字串
uj5u.com熱心網友回復:
char str[20],只能保存20個字符,如果想保存五個字串,那么每個字串只能有4個字符。為了處理方便,這4個字符位置,3個用來存放字符,第4個存放\0
你應該再學一下,字串陣列,字串是一維陣列,二維陣列才能保存多個字串。
uj5u.com熱心網友回復:
好的,謝謝大神了
uj5u.com熱心網友回復:
這樣就能保存5個字串了,這種方法最清晰。#include <stdio.h>
int main() {
char str[4][20];
for (int i = 0; i < 5; i ++)
{
scanf("%s", str[i]);
}
for (int j = 0; j < 5; j++)
{
printf("%s\n", str[j]);
}
return 0;
}
uj5u.com熱心網友回復:
char str[5][20];這里是5,寫錯了轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/117333.html
標籤:C語言
上一篇:大一新生通信工程專業需要買電腦
下一篇:剛剛接觸學習,哪位大佬敲一下發我
