内容:输入n个字符串,对这n个字符串进行排序(按升序),输出排序后的字符串。然后从键盘再次输入一字符
内容:输入n个字符串,对这n个字符串进行排序(按升序),输出排序后的字符串。然后从键盘再次输入一字符串,在原有的n个字符串中进行查找,并给出查找结果提示。要求:输入、输出...
内容:输入n个字符串,对这n个字符串进行排序(按升序),输出排序后的字符串。然后从键盘再次输入一字符串,在原有的n个字符串中进行查找,并给出查找结果提示。
要求:输入、输出、排序、查找都写成函数,并且字符串的存储用指针数组完成。
用C语言编写!!! 展开
要求:输入、输出、排序、查找都写成函数,并且字符串的存储用指针数组完成。
用C语言编写!!! 展开
2个回答
展开全部
import java.util.Arrays;
public class StringSort {
public static void main(String[] args) {
String string = "anmafdsfsdf";
String sortString = sortChar(string);
System.out.println(sortString);
}
private static String sortChar(String str) {
// 1.将字符串转化成数组
char[] chs = stringToArray(str);
// 2.对数组进行排序
sort(chs);
// 3.将数组转成字符串
return toString(chs);
}
private static String toString(char[] chs) {
return new String(chs);
}
// 对字符数组进行升序排序
private static void sort(char[] chs) {
Arrays.sort(chs);
}
// 将字符串转化成为数组
private static char[] stringToArray(String string) {
return string.toCharArray();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void SelectSort(char a[][100], int n)
{
int i, j, min;
char temp[100];
for(i=0; i<n; i++) {
min = i;
for(j=i+1; j<n; j++) {
if( strcmp(a[j], a[min])<0 ) min = j;
}
if (min != i) {
strcpy(temp, a[i]);
strcpy(a[i], a[min]);
strcpy(a[min], temp);
}
}
}
int input(char s[][100])
{
int n, i;
printf("输入字符串的个数:");
scanf("%d", &n);
printf("输入%d个字符串:\n", n);
for(i=0; i<n; i++) scanf("%s", s[i]);
}
void output(char s[][100], int n, char *desc)
{
printf("%s\n", desc);
for(int i=0; i<n; i++)
printf("%s\n", s[i]);
}
bool findStr(char s[][100], int n, char *key)
{
bool find = false;
int l=0, r=n-1, mid, cmp;
while(l<=r) {
mid = (l+r)/2;
cmp = strcmp(key, s[mid]);
if(cmp ==0)
{ find = true; break;}
else if (cmp < 0) { r = mid -1;}
else l = mid +1;
}
if(find) {
printf("找到了字符串\"%s\", 它的位置是%d.\n", key, mid);
} else {
printf("没有找到字符串 \"%s\". \n", key);
}
return find;
}
int main(){
char s[20][100], str[100];
int n, i;
n = input(s);
SelectSort(s, n);
output(s, n, "\n排序后的字符串:");
printf("输入要查找的串:\n");
scanf("%s", str);
findStr(s, n, str);
system("pause");
return 0;
}
#include <string.h>
#include <stdlib.h>
void SelectSort(char a[][100], int n)
{
int i, j, min;
char temp[100];
for(i=0; i<n; i++) {
min = i;
for(j=i+1; j<n; j++) {
if( strcmp(a[j], a[min])<0 ) min = j;
}
if (min != i) {
strcpy(temp, a[i]);
strcpy(a[i], a[min]);
strcpy(a[min], temp);
}
}
}
int input(char s[][100])
{
int n, i;
printf("输入字符串的个数:");
scanf("%d", &n);
printf("输入%d个字符串:\n", n);
for(i=0; i<n; i++) scanf("%s", s[i]);
}
void output(char s[][100], int n, char *desc)
{
printf("%s\n", desc);
for(int i=0; i<n; i++)
printf("%s\n", s[i]);
}
bool findStr(char s[][100], int n, char *key)
{
bool find = false;
int l=0, r=n-1, mid, cmp;
while(l<=r) {
mid = (l+r)/2;
cmp = strcmp(key, s[mid]);
if(cmp ==0)
{ find = true; break;}
else if (cmp < 0) { r = mid -1;}
else l = mid +1;
}
if(find) {
printf("找到了字符串\"%s\", 它的位置是%d.\n", key, mid);
} else {
printf("没有找到字符串 \"%s\". \n", key);
}
return find;
}
int main(){
char s[20][100], str[100];
int n, i;
n = input(s);
SelectSort(s, n);
output(s, n, "\n排序后的字符串:");
printf("输入要查找的串:\n");
scanf("%s", str);
findStr(s, n, str);
system("pause");
return 0;
}
追问
童鞋!有好几处编译错误,能改下吗?谢谢!
追答
你是用的什么语言? 什么编译器?
#include
#include
#include
void SelectSort(char a[][100], int n)
{
int i, j, min;
char temp[100];
for(i=0; i<n; i++) {
min = i;
for(j=i+1; j<n; j++) {
if( strcmp(a[j], a[min])<0 ) min = j;
}
if (min != i) {
strcpy(temp, a[i]);
strcpy(a[i], a[min]);
strcpy(a[min], temp);
}
}
}
int input(char s[][100])
{
int n, i;
printf("输入字符串的个数:");
scanf("%d", &n);
printf("输入%d个字符串:\n", n);
for(i=0; i<n; i++)
scanf("%s", s[i]);
}
void output(char s[][100], int n, char *desc)
{
int i;
printf("%s\n", desc);
for(i=0; i<n; i++)
printf("%s\n", s[i]);
}
int findStr(char s[][100], int n, char *key)
{
int find;
int l=0, r=n-1, mid, cmp;
find = 0;
while(l<=r) {
mid = (l+r)/2;
cmp = strcmp(key, s[mid]);
if(cmp ==0)
{ find = 1; break;}
else if (cmp < 0) { r = mid -1;}
else l = mid +1;
}
if(find) {
printf("找到了字符串\"%s\", 它的位置是%d.\n", key, mid);
} else {
printf("没有找到字符串 \"%s\". \n", key);
}
return find;
}
int main(){
char s[20][100], str[100];
int n, i;
n = input(s);
SelectSort(s, n);
output(s, n, "\n排序后的字符串:");
printf("输入要查找的串:\n");
scanf("%s", str);
findStr(s, n, str);
system("pause");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询