输入文本并按字母顺序排序 #包括 #包括 #包括 int main(){ char-str1[100]; char-str2[100]; char-str3[100]; 整数计数,tmp; int i,j=0,k=0; scanf(“%s”,str1); 计数=strlen(str1); 对于(i=0;i
我认为问题在于:输入文本并按字母顺序排序 #包括 #包括 #包括 int main(){ char-str1[100]; char-str2[100]; char-str3[100]; 整数计数,tmp; int i,j=0,k=0; scanf(“%s”,str1); 计数=strlen(str1); 对于(i=0;i,c,C,我认为问题在于: #include <stdio.h> #include <string.h> #include <ctype.h> int main() { char str1[100]; char str2[100]; char str3[100]; int count, tmp; int i, j=0, k=0; scanf("%s", str1); count=strlen(str1);
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str1[100];
char str2[100];
char str3[100];
int count, tmp;
int i, j=0, k=0;
scanf("%s", str1);
count=strlen(str1);
for(i=0; i<count; i++) {
if(islower(str1[i])) {
str2[j]=str1[i];
j++;
}
else if(isupper(str1[i])) {
str3[k]=str1[i];
k++;
}
}
str2[j]='\0';
str3[k]='\0';
for(i=0; i<strlen(str2); i++) {
for(j=0; j<i; j++) {
if(str2[j]>str2[j+1]) {
tmp=str2[j];
str2[j]=str2[j+1];
str2[j+1]=tmp;
}
}
}
for(i=0; i<strlen(str3); i++) {
for(j=0; j<i; j++) {
if(str3[j]>str3[j+1]) {
tmp=str3[j];
str3[j]=str3[j+1];
str3[j+1]=tmp;
}
}
}
printf("lowercase alignment : %s\n", str2);
printf("uppercase alignment : %s", str3);
return 0;
}
下一步要做的是将排序逻辑移到它自己的函数中,并对每个要排序的字符串调用该函数,而不是在
main()
的主体中重复代码两次。我相信问题在于:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str1[100];
char str2[100];
char str3[100];
int count, tmp;
int i, j=0, k=0;
scanf("%s", str1);
count=strlen(str1);
for(i=0; i<count; i++) {
if(islower(str1[i])) {
str2[j]=str1[i];
j++;
}
else if(isupper(str1[i])) {
str3[k]=str1[i];
k++;
}
}
str2[j]='\0';
str3[k]='\0';
for(i=0; i<strlen(str2); i++) {
for(j=0; j<i; j++) {
if(str2[j]>str2[j+1]) {
tmp=str2[j];
str2[j]=str2[j+1];
str2[j+1]=tmp;
}
}
}
for(i=0; i<strlen(str3); i++) {
for(j=0; j<i; j++) {
if(str3[j]>str3[j+1]) {
tmp=str3[j];
str3[j]=str3[j+1];
str3[j+1]=tmp;
}
}
}
printf("lowercase alignment : %s\n", str2);
printf("uppercase alignment : %s", str3);
return 0;
}
下一步要做的事情是将排序逻辑移到它自己的函数中,并对每个要排序的字符串调用该函数,而不是在
main()
的主体中重复代码两次。错误是什么?生成错误的输入字符串是什么?如果输入“amoiAFER”输出小写对齐方式:amio,大写对齐方式:AEFR有哪些错误以及生成这些错误的输入字符串是什么?如果输入“amoiAFER”,输出小写对齐方式:amio,大写对齐方式:AEFR
for (i = 0; i < strlen(str2); i++) {
for (j = 0; j < strlen(str2) - 1; j++) {
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char mixedcase[100];
char lowercase[100];
char uppercase[100];
scanf("%s", mixedcase);
size_t length = strlen(mixedcase);
int l = 0, u = 0;
for (int i = 0; i < length; i++) {
char c = mixedcase[i];
if (isalpha(c)) {
if (islower(c)) {
lowercase[l++] = mixedcase[i];
} else {
uppercase[u++] = mixedcase[i];
}
}
}
lowercase[l] = '\0';
uppercase[u] = '\0';
length = strlen(lowercase);
for (int i = 0; i < length; i++) {
for (int j = 0; j < length - 1; j++) {
if (lowercase[j] > lowercase[j+1]) {
char tmp = lowercase[j];
lowercase[j] = lowercase[j+1];
lowercase[j+1] = tmp;
}
}
}
length = strlen(uppercase);
for (int i = 0; i < length; i++) {
for (int j = 0; j < length - 1; j++) {
if (uppercase[j] > uppercase[j+1]) {
char tmp = uppercase[j];
uppercase[j] = uppercase[j+1];
uppercase[j+1] = tmp;
}
}
}
printf("Lowercase alignment: %s\n", lowercase);
printf("Uppercase alignment: %s\n", uppercase);
return 0;
}