就数字前后加下划线 有问题~~~
#include <stdio.h>
#include <string.h>
main()
{
char a[100];
gets(a);
int len=strlen(a);
char *p = a;
int i,j=0;
for(i=0;p[i]!= '\0';)
{
a[j++] = p[i++];
while(p[i] == ' '&&p[i+1]==' ')
/*处理空格,保留一个空格*/
{
i++;
}
}
a[j] = '\0';
for(i=0;a[i];i++)
{
if(a[0]>='a'&&a[0]<='z')
a[0]=a[0]-32;
/*首字母为大写*/
if(a[i]==' ') a[i+1]=a[i+1]-32;
if(!(a[i]>='0'&&a[i]<='9')&&(a[i+1]>='0'&&a[i+1]<='9'))
/*数字前加下划线???*/
{
for(int k=len-1;k>i+1;k--)
a[k+1]=a[k];
a[k]='_';
}
if((a[i]>='0'&&a[i]<='9')&&!(a[i+1]>='0'&&a[i+1]<='9'))
/*数字后加下划线???*/
{
for(int k=len-1;k>=i+1;k--)
a[k+1]=a[k];
a[k]='_';
}
}
puts(a);
}