0
私は現在、C & R Cで3-3の運動をしています。なぜ私の解決策が機能していないのか混乱しています。この演習の目的は、2つの文字列を渡すことです。 "a-z"や "0-9"のようなものに遭遇すると、2つの文字の完全なリストを出力します。これは私の現在の解決策です:K&R C演習3-3配列のchar要素を編集できない?
#include <stdio.h>
#include <stdlib.h>
char* expand(char s1[], char s2[]);
int main(){
char s1[100] = {"a-z is higher on the ascii table than 0-9\0"};
char s2[200];
expand(s1, s2);
printf("%s\n", s2);
}
char* expand(char s1[], char s2[]){
char temp;
char temp2;
for(int i = 0; s1[i] != '\0'; i++){
if(s1[i] == '-'){
temp = s1[i-1];
temp2 = s1[i+1];
for(int j = temp + 1; j < temp2; j++){
s2[i] = j;
i++;
}
}
else
{
s2[i] = s1[i];
}
}
return s2;
}
ご協力いただきありがとうございます!
'a-z'を26文字に拡張すると、' else s2 [i] = s1 [i]; 'はもう正しく動作しません。別々の入出力インデックスが必要です。 – user3386109
何をお手伝いしますか? [ask]を読んで助言に従ってください。 – Olaf