字符串带小写排序,大写在前,小写在后
#include <stdio.h>
#include<string.h>
#define MAX 256
using namespace std;
-
MyClass::MyClass(QWidget *parent)
-
QMainWindow(parent)
{
ui.setupUi(this);
test();
}
void MyClass::test()
{
printf(“Please enter a string:\n”);
char s[MAX];
char tmp[MAX];
char* p = s;
char temp, ch;
int n = 0;
gets(s);
/*判断字符串长度*/
while (*p != '\0')
{
tmp[n] = *p;
n++;
p++;
}
TurnChar(s);
/*冒泡排序*/
for (int i = 0; i<n; i++)
for (int j = i; j<n; j++)
{
if (s[j]<s[i])
{
temp = s[j];
s[j] = s[i];
s[i] = temp;
}
}
char *q;
q = tmp;
while (*q != '\0')
{
if ((*q >= 'a') && (*q <= 'z'))
{
*q = *q - 32;
for (int i = 0; i<n; i++)
{
if (i<n-1)
{
if (s[i] == *q && s[i]<s[i + 1])
{
printf("***\n");
s[i] = *q + 32;
}
}
else
{
if (s[n-1] == *q)
{
printf("***123***\n");
s[n-1] = *q + 32;
}
}
}
}
q++;
}
printf("%s\n", s);
return;
}
//转换字符串中大字字母为小写
void MyClass::TurnChar(char a[])
{
char *p;
p = a;
while (*p != ‘\0’)
{
if ((*p >= ‘a’) && (*p <= ‘z’))
*p = *p - 32;
p++;
}
}