1.string函数的改写,不使用库函数实现string函数族的功能:strlen strcpy strcmp strcat
#include<stdio.h>
int main()
{
char str1[100], str2[100];
//strlen改写
long len;
for(len=0; str[len]!=0; len++);
printf("%ld", len);
//strcpy改写
int i;
for(i=0; (str1[i] = str2[i])!=0; i++);
printf("%s\n", str1);
//strcmp改写
int res=0;
for(int i=0; 0==(res=(str1[i]-str2[i]) && 0!=str1[i]; i++);
printf("flag = %d", res);
//strcat改写
int len1=0;
for(len1=0; str1[len1]!=0; len1++);
for(int i=0; 0!=(str1[len1++] = str2[i]); i++);
printf("%s\n", str1);
return 0;
}
2.从终端获取一个字符串,要求将该字符串倒置存储。不允许使用辅助数组
#include<stdio.h>
int main()
{
char str[10000];
puts("请输入一个字符串:\n");
gets(str);
puts(str);
int index = 0;
for( ; str[index]!=0; index++);//计算字符串长度
for(int i=0; i<index/2; i++) //满足条件进行交换值
{
str[i] ^= str[index-i-1];
str[index-i-1] ^= str[i];
str[i] ^= str[index-i-1];
//char c = str[i];
// str[i] = str[index-i-1];
// str[index-i-1] = c;
//puts(str);
}
puts(str);
return 0;
}
3.从终端获取一个字符串,判断该字符串中小写字母分别有几个。aabbbcc —>a有2个 b有3个 c有2个
#include<stdio.h>
int main()
{
char str[10000];
int ch[26]={0}; //用来存放26个小写字母的个数,ch[0]存放字母a的个数,ch[1]存放字母b的个数
puts("请输入一个字符串:\n");
gets(str);
for(int i=0; str[i]!=0; i++)
if(str[i]>=97 && str[i]<=122)//判断是不是小写字母
ch[str[i]-97]++; //让对应小写字母的ch数组元素++
puts("字符串:");
puts(str);
//输出各个小写字母的个数
for(int i=0; i<26; i++)
printf("字母%c有%d个\n", i+97, ch[i]);
return 0;
}
4.从终端输入一个字符串,要求删除字符串中的空格字符,请在原字符串上操作,不允许使用辅助数组
#include<stdio.h>
int main()
{
char str[10000];
puts("请输入一个字符串:\n");
gets(str);
int j=0; //定义一个变量存储不是空格的个数
for(int i=0; str[i]!=0; i++) //遇到'\0'退出循环
if(str[i]!=32) //判断字符是否是空格
{
str[j] = str[i]; //把下标为j的空格字符存储下表为i的不是空格的字符
j++; //
}
str[j] = 0;
puts(str);
return 0;
}