用户输入一串字符串(假定字符串大小不大于200位)
当用户输入:hao do
you
do
99abc
输出为:Hao Do You Do 99_abc
当用户输入: hello
world
993kk
输出为:Hello World 993_kk
中间的有多个空格的用一个空格代替,首字母大写,数字和字母之间用”_”隔开
#include<stdio.h>
void jieguo(char *a);
void main()
{
int i;
char a[400];
gets(a);
jieguo(a);
}
void jieguo(char *a)
{
int i=0,j,k,n=0;
if(a[0]<='z'&&a[0]>='a')
a[0]-=32;
for(i=0;a[i];i++)
{
if(a[i]==' ')
{
n=0;
//printf("s");
for(j=i+1;a[j];j++)
{
n++;
if(a[j]!=' ')
{
if(a[j]>='a'&&a[j]<='z')
a[j]-=32;
for(k=j;a[k];k++)
{
a[i+1]=a[k];
i++;
}
i=j;
break;
}
}
for(j=k-n;j<=k;j++)
{
k=k-n;
a[k+1]='\0';
}
}
}
//printf("ss");
for(j=0;a[j];j++);
int x,z=0;
for(x=0;a[x-7];x++)//这里为什么会溢出如何解决
{
z++;
//if(a[x])
//
printf("%c",a[x]);
if(a[x]>='a'&&a[x]<='z'&&a[x+1]>='0'&&a[x+1]<='9'||a[x+1]>='a'&&a[x+1]<='z'&&a[x]>='0'&&a[x]<='9')
{
for(k=j-1;k>=x+1;k--)
{
//
printf("s");
a[k+1]=a[k];
}
a[x+1]='-';
j++;
}
}
//printf("\n");
printf("%d\n",z);
puts(a);
}