解題思路:
第一處: 要求是取出原字符串中所有數(shù)字字符組成一個新的字符串,程序中是使用變量j
來控制新字符串的位置,所以應(yīng)改為:s[j++]=s[i];。
第二處: 置新字符串的結(jié)束符,所以應(yīng)改為:s[j]='\0';.
***************************************************
請編寫函數(shù)fun, 函數(shù)的功能是: 將M行N列的二維數(shù)組中的字符數(shù)據(jù), 按列的
順序依次放到一個字符串中。
例如, 二維數(shù)組中的數(shù)據(jù)為:
W W W W
S S S S
H H H H
則字符串中的內(nèi)容應(yīng)是: WSHWSHWSH。
注意:部分源程序在文件PROG1.C中。
請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容, 僅在函數(shù)fun的花括號中填入
你編寫的若干語句。
給定源程序:
#include
#define M 3
#define N 4
void fun(char s[][N], char *b)
{
int i,j,n=0;
for(i=0; i < N;i++) /* 請?zhí)顚懴鄳?yīng)語句完成其功能 */
{
}
b[n]='\0';
}
main()
{ char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}};
int i,j;
printf("The matrix:\n");
for(i=0; i { for(j=0;j printf("\n"); } fun(w,a); printf("The A string:\n");puts(a); printf("\n\n"); NONO(); } 解題思路: 本題是把二維數(shù)組中的字符數(shù)據(jù)按列存放到一個字符串中。 1. 計算存放到一維數(shù)組中的位置。 2. 取出二維數(shù)組中的字符存放到一維數(shù)組(已計算出的位置)中。 參考答案: void fun(char s[][N], char *b) { int i,j,n=0; for(i=0; i < N;i++) /* 請?zhí)顚懴鄳?yīng)語句完成其功能 */ { for(j = 0 ; j < M ; j++) { b[n] = s[j][i] ; n = i * M + j + 1; } } b[n]='\0'; } 相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |