1 、任意输入一行字符串保存在一维字符数组中,判断里面数字字符的个数。
#include<stdio.h>
int main()
{
int i,n=0;
char s[80];
gets(s);
for (i=0;s[i]!='\0'; i++) {
if(s[i]>='0'&&s[i]<='9')
n++;
}
printf("%d",n);
}
2、任意输一行字符串(包括空格),求其长度(不用strlen函数)。
#include<stdio.h>
int main()
{
int i,n=0;
char s[80];
gets(s);
for (i=0;s[i]!='\0'; i++){}
printf("%d",i);
}
3、输入一个字符串和一个特定字符,在字符串中删除从该特定字符开始的所有字符。例如输入字符串为"abcdefg",特定字符为'd',删除后的字符串为"abc";输入字符串为"abcdefg",特定字符为'x',则输出“特定字符不存在”。
#include<stdio.h>
int main()
{
int i,flag = 0;
char s[80],n;
gets(s);
scanf("%c",&n);
printf("特定字符是%c\n",n);
for (i=0;s[i]!='\0'; i++) {
if (s[i]==n) {
s[i]='\0';
flag=1;
printf("删除特定字符%c后的字符串是",n);
puts(s);
break;
} else
flag=0;
}
if (flag==0) {
printf("特定字符不存在");
}
}
4、用空格或换行分开的字符串称为单词。输入多行字符串,直到遇到了单词 "stop" 时才停止。最后输出单词的数量。用于分割单词的空格或换行可能多于1个。单词数量不包括"stop" 。
#include <stdio.h>
#include <string.h>
int main()
{
int i=0;
char str[80];
while (1) {
scanf("%s",str);
if (strcmp(str, "stop")!=0) {
i++;
} else {
break;
}
}
printf("%d",i);
}
5、编写程序,从输入的一行字符串中抽取一部分(从第n个字符开始,抽取m个字符)构成一个新的字符串,并输出。其中n>0且n<=字符串的长度,否则打印“起始位置n越界”
要求:n和m都由用户输入。
如果抽取的字符串长度不够,则按照实际长度抽取,例如,字符串为“abcde”,若n=2,m=3,则抽取结果为“bcd”;若n=3,m=5,则抽取结果为“cde”;若n=0,m=4 则输出:起始位置0越界 ;若n=6,m=2 则输出:起始位置6越界
#include <stdio.h>
#include <string.h>
int main()
{
int n,m,i;
unsigned long l;
char s[80];
gets(s);
scanf("%d%d",&n,&m);
l=strlen(s);
if (n+m-1>l) {
m=l+1-n;
}
if (n>0&&n<=l) {
for (i=n-1; i<n+m-1; i++) {
printf("%c",s[i]);
}
} else {
printf("起始位置%d越界",n);
}
return 0;
}
6、任意输入两行字符串,把第二行字符串连接到第一行字符串末尾(不用strcat函数)。
#include <stdio.h>
#include <string.h>
int main()
{
char s1[80],s2[80];
int i,l1,l2,j;
gets(s1);
gets(s2);
l1=strlen(s1);
l2=strlen(s2);
for (i=l1,j=0; j<l2; i++,j++) {
s1[i]=s2[j];
}
puts(s1);
return 0;
}
7、有一篇文章,共有多行文字(不超过10行), 最后一行为end。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。统计结果不包括最后一行的end。
#include <stdio.h>
#include <string.h>
int main()
{
char s[10][80];
int i=0,j,space=0,lwr=0,upr=0,number=0,other=0;
while (1) {
gets(s[i]);
if (strcmp(s[i], "end")!=0) {i++;}
else break;
}
for (i=i-1;i>=0 ; i--) {
for (j=0; s[i][j]!='\0'; j++)
{ if (s[i][j] == ' ')
space++;
else if (s[i][j] >= 'a' && s[i][j] <= 'z')
lwr++;
else if (s[i][j] >= 'A' && s[i][j] <= 'Z')
upr++;
else if (s[i][j] >= '0' && s[i][j] <= '9')
number++;
else
other++;
}
}
printf("大写字母有%d个\n", upr);
printf("小写字母有%d个\n", lwr);
printf("数字有%d个\n", number);
printf("空格有%d个\n", space);
printf("其他字符有%d个", other);
}