C语言字符串笔试题
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。下面就由为大家介绍一下C语言字符串笔试题的文章,欢迎阅读。
C语言字符串笔试题篇1
对一个字符串重新排列,字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序。
[cpp] vie plain copy print?
#include
#include
#include
#define N 30
/***********************************************
*函数名称: fun
*创建时间: 2010125
*描 述: 对一个字符串重新排列,字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序。
*参 数: char * s,int *m
*返 回 值: chLetter(数组chLetter[]的首元素地址)
*局部变量: char chLetter[N];
* char chNumber[N];
* int i,j,k;
************************************************/
char * fun(char * s,int *m) //参数m是通过调试才想到的
{
char chLetter[N]; //用来存放字母
char chNumber[N]; //用来存放数字
int i,j,k;
i=0; //初始化
j=0; //j用来记录字母的个数
k=0; //k用来记录数字的个数
for (i=0; i
{
if (s[i] = A s[i] = Z //将字母存入chLetter[]
|| s[i] = a s[i] = z )
{
chLetter[j]=s[i];
j++;
}
if (s[i] = 0 s[i] = 9 ) //将数字存入chNumber[]
{
chNumber[k]=s[i];
k++;
}
}
chLetter[j]=
chNumber[k]=
*m=j+k; //用来返回最后输入和输出时字符的个数
strcat(chLetter,chNumber);
return chLetter;
}
//主函数
void main()
{
char s[N];
int i;
int m;
char *p;
p=NULL;
printf( 请输入字符串(30字符以内):n
scanf( %s ,s);
p=fun(s, //刚开始没定义出这个m来现限制指针p所指数组的长度就出现了后面两个字符乱码
for (i=0; i
{
s[i]=p[i];
}
printf( 结果为:
for (i=0; i
{
printf( %c ,s[i]);
}
printf( n
}
C语言字符串笔试题篇2
将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串。
[cpp] vie plain copy print?
#include
#include
#include
#define N 30 //s所指字符串的最大长度
#define T 2 //t1和t2所指字符串的长度
/***********************************************
*函数名称: fun
*创建时间: 2010125
*描 述: 将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串
*参 数: char * s,char * t1, char * t2,int *m
*返 回 值: (数组[]的首元素地址)
*局部变量: char [N];
* char temp[T];
* char t1temp[T];
* int i,j,k,l;
************************************************/
char * fun(char * s,char * t1, char * t2,int *m) //m的作用和第一题一样,没m最后两个字符会乱码(想寻求其他方法)
{
char [N]; //用来存放处理后的字符串
char temp[T]; //用来存放从s所指字符串中截取的子串
char t1temp[T]; //用来存放t1所指字符串
int i,j,k,l;
//向t1temp中存入t1所指字符串
for (i=0; i
{
t1temp[i]=t1[i];
}
t1temp[T]=
//求m所指的值