版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1
不用创建头文件
#include <stdio.h>
#include"string.h"
/**
将一个字符串中的非字母字符删除, 然后排序并显示剩余的字母字符
**/
void main( )
{
//定义一个字符串数组
char str[255] = "asdfghjkl123456adgsfdgsaf26311232";
char *cp1;
cp1 = str;
char str1[255];
int j = 0;
//非字母字符删除
for (int i = 0; i < 255; i++)
{
char c = *(cp1++);
if((c >= 'a' && c <= 'z')||(c >= 'A' && c <= 'Z'))
{
str1[j] = c;
j++;
}
}
//排序
char *cp2;
cp2 = str1;
int len = j;
for (int i = 0; i < len - 1; i++)
{
for (int k = i + 1; k < len; k++)
{
if(*(cp2 + i) > *(cp2 + k))
{
char temp = *(cp2 + i);
*(cp2 + i) = *(cp2 + k);
*(cp2 + k) = temp;
}
}
}
for (int i = 0; i < j; i++)
{
printf("%c",str1[i]);
}
}
创建头文件的方式解题
文件名:abcde.h
char * chuli(char str[]) /*定义add函数*/
{
char *cp1;
cp1 = str;
char str1[255];
int j = 0;
//非字母字符删除
for (int i = 0; i < 255; i++)
{
char c = *(cp1++);
if((c >= 'a' && c <= 'z')||(c >= 'A' && c <= 'Z'))
{
str1[j] = c;
j++;
}
}
//排序
char *cp2;
cp2 = str1;
int len = j;
for (int i = 0; i < len - 1; i++)
{
for (int k = i + 1; k < len; k++)
{
if(*(cp2 + i) > *(cp2 + k))
{
char temp = *(cp2 + i);
*(cp2 + i) = *(cp2 + k);
*(cp2 + k) = temp;
}
}
}
for (int i = 0; i < j; i++)
{
printf("%c",str1[i]);
}
return str1;
}
文件名text.cpp
#include <stdio.h>
#include"string.h"
#include"abcde.h"
/**
将一个字符串中的非字母字符删除, 然后排序并显示剩余的字母字符
**/
void main( )
{
//定义一个字符串数组
//char str[255] = "asdfghjkl123456adgsfdgsaf26311232";
//也可以自定义从键盘输入
char str[255];
gets(str)
char *cp;
cp = chuli(str);
}
2
#include <stdio.h>
#include"string.h"
/**
将一个字符串中右截取n个字符
**/
static int lenth;
char * chuli(char str[], int n)
{
//判断有几个有效字符
int len = 0;
for(int i = 0; str[i]; i++)
{
if(str[i] != '\0')
{
len++;
}
}
//截取后的长度
len -= n;
lenth = len;
//定义一个新的数组用来存放截取后的(cpp)文件
static char str1[255];
for (int i = 0; i < len; i++)
{
str1[i] = str[i];
}
/*for (int i = 0; i < len; i++)
{
printf("%c", str1[i]);
}*/
return str1;
}
void main( )
{
//定义一个字符串数组
char str[255];
gets(str);
char *cp;
cp = chuli(str, 1);
for (int i = 0; i < lenth; i++)
{
printf("%c", *(cp+i));
}
}