<stdio.h>
#include
<string.h>//为strlen()函数提供原型
int
main()
{
char
ch[100]
int
i,length
int
n_number=0,m_number=0
printf("请输入字符串:
")
gets(ch)//获取输入,并存入数组中
length=strlen(ch)//计算输入字符串的长度
for(i=0i<lengthi++)
{
if(ch[i]>='0'&&ch[i]<='9')//判断是否为数字
{
n_number++
}
if(ch[i]>='a'&&ch[i]<='z'||ch[i]>='A'&&ch[i]<='Z')//判断是否为字母
{
m_number++
}
}
printf("输入的字符串为:
")
puts(ch)//输出存入数组的字符串
printf("字符串中数字的个数=%d,字母的个数=%d\n",n_number,m_number)
return
0
}
字符串输出在遇到'\0'字符前不会停char*
p
=
"123\0456"
printf(p)
//
输出123
p[3]
=
'&'
printf(p)
//
输出123&456
你代码里为什么那样是因为多位数组的存储空间是连续的
两句strcpy后arr数组是变这样
you.me.?
其中.代表空字符,?是未使用的空间