プログラミングのポインタの所の課題で、途中までやったのですが・・・
プログラミングのポインタの所の課題で、途中までやったのですが・・・
どうしてもとけません。どなたか解けるかた、ご指導お願いします。。。
課題は以下の通りです。
1.文字配列の先頭文字でソートを行って出力するプログラムを完成させよ。ただし、my_sort_stringsはポインタ配列とその要素数を引数として、登録されている文字配列を昇順に並べ替える関数である。
#include<stdio.h>
#include<string.h>
void print_strings(char **p, int n);
void swap_strings(char **p, int i, int j);
int min_index();
void my_sort_strings();
int main()
{
char*p[100];
char Orange[] = "orange";
char Apple[] = "apple";
char Peach[] = "peach";
char Grape[] = "grape";
char Melon[] = "melon";
int i;
p[0] = Orange;
p[1] = Apple;
p[2] = Peach;
p[3] = Grape;
p[4] = Melon;
print_strings(p, 5);
my_sort_strings();
print_strings(p, 5);
return 0;
}
void print_strings(char **s, int n)
{
int i;
printf("-----------begin: print_string ----------\n");
printf("print_string: s's value: %08x\n", s);
for(i = 0; i < n; i++)
{
printf("(s[%d])'s value: %08x\n", i, s[i]);
printf("(s[%d])'s address: %08x\n", i, &s[i]);
}
for(i = 0; i < n; i++)
printf("%d: %s\n, i, s[i]");
printf("-----------end: print_strings-----------\n");
}
void swap_strings(char **p, int i, int j)
{
char *tmp;
tmp = p[i];
p[i] = p[j];
p[j] = tmp;
}
int min_index(char **a, int n)
{
}
void my_sort_strings( )
{
}
2.課題1を元に文字配列の2文字目以降の順序まで考慮した辞書式順序でソートを行うプログラムを作成せよ。関数名はlexicographic_sortとする。
お礼
回答ありがとうございます。文字列の7番目の文字は、s1[7]で表示する ことがわかりました。