经典例题

经典例题(一)

统计一个字符串中每个字符出现的次数

例如:abacbdca
out:
a 3
b 2
c 2
d 1
方法:浪费空间换时间

#include 
void countwords(char s[],int a[])
{
 int i=0;
 while(s[i])
 {
  a[s[i]]++;//每个字符都对应有ASCII码值,以ASCII码值做下标
  i++;
 }
}
int main()
{
 char s[81];
 int i,a[256]={0};//ASCII码值共有256个
 printf("请输入一个字符串:\n");
 gets(s);
 countwords(s,a);
 for(i=0;i<256;i++)
  if(a[i]!=0)
   printf("%c %d\n",i,a[i]);
 return 0;
}

经典例题(二)

将一个字符串中的前k个字符逆转至字符串尾部

例如:abcXYZdefg (k=3)
out: XYZdefgabc
方法一:

#include 
int main()
{
 char s[81],t[81];
 int k;
 gets(s);
 scanf("%d",&k);
 strcpy(t,s+k);
 s[k]=0;//即s[k]='/0';
 strcat(t,s);
 puts(t);
 return 0;
}

方法二:

#include 
int main()
{
 char s[81];
 int k,i,j;
 gets(s);
 scanf("%d",&k);
 for(i=0;i

方法三:三次逆转

#include 
#include 
void exchange(char s[],int n)
{
 int i,j;
 for(i=0,j=n-1;i

你可能感兴趣的:(经典例题)