首先说一下会用到的标准库函数,gets(),puts(),strlen(),前两个是在头文件stdio.h中,后一个是在string.h里,用法如下:
1、gets():与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
2、puts(): puts 和 printf的用法一样,puts()函数的作用与语句“printf("%s\n",s);的作用相同。注意:puts在输出字 符串后会自动输出一个回车符。
3、strlen():使用格式strlen(s)。返回s的长度,不包括结束符NULL。
scanf//遇到空格或者回车结束
gets(b);//回车结束
puts(b);
输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
int letter = 0,number = 0,blank = 0,others = 0,c;
while((c = getchar()) != '\n'){
if(c >= 'A' && c<='Z' || c >= 'a' && c <= 'z')
letter++;
else if(c >= '0' && c <= '9')
number++;
else if(c == ' ')
blank++;
else
others++;
}
printf("%d %d %d %d\n",letter,number,blank,others);
return 0;
//字符串处理函数
strlen 求字符串长度
strcpy 字符串拷贝函数
strcat 字符串连接函数
strrev 反转函数
int len;
char ch[200];
//scanf("%s",ch);
gets(ch);
len=strlen(ch);
strcpy(a,b);//后面拷贝到前面,
strcat(a,b);
strrev(b);
printf("length=%d\n",len);
输入10个数字,然后逆序输出。
#include<stdio.h>
int main()
{
int a[10],i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=9;j>=0;j--)
printf("%d ",a[j]);
return 0;
}
写一函数,将两个字符串连接
#include<stdio.h>
int main()
{
char a[100];
char b[100];
scanf("%s%s",&a,&b);
strcat(a,b);
printf("%s",a);
}
所给字符串正序和反序连接,形成新串并输出
//字符串正反链接
#include<stdio.h>
#include<string.h>
int main(){
char str[110];
int i;
scanf("%s",str);
for(i=0;i<strlen(str);i++){
printf("%c",str[i]);
}
for(i=strlen(str)-1;i>=0;i--){
printf("%c",str[i]);
}
return 0;
}
二维数组
int a[3][4]=[1,2,3];
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
a[i][j]=9;
}
}
printf("%d\n",a[1][2]);
//第一个表示行,第二个表示列;一共有两百个
打印九九乘法表
#include<stdio.h>
int main()
{
int a[10][10];
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
a[i][j]=i*j;
printf("%d*%d=%-2d ",j,i,a[i][j]);
}
printf("\n");
}
}
求矩阵的两对角线上的元素之和
输入
矩阵的行数N
和一个N*N的整数矩阵a[N]N
输出
所输矩阵的两对角线上的元素之和
举个栗子:
如下矩阵(n*n)中,当n = 3时,如下图:
1 2 3
4 5 6
7 8 9
该矩阵是个3*3奇数矩阵,用两个for循环将矩阵1,5,9和3,5,7累加起来并减去(n/2,n/2)处的元素5,打印结果,若矩阵是偶数阵,则在(n/2,n/2)处根本就没元素,所以不用考虑。
#include<stdio.h>
int main()
{
int a[10][10],n,sum=0,i,j;
scanf("%d",&n);
//简单的二维数组初始化
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
//从左上到右下
for(i=0,j=0;i<n;i++,j++)
sum+=a[i][j];
//从左下到右上
for(i=n-1,j=0;j<n;i--,j++)
sum+=a[i][j];
//判别一下奇偶,就行
if(n%2==0)
printf("%d",sum);
else
printf("%d",sum-a[n/2][n/2]);
return 0;
}
***
网友评论