1.从键盘上接收一个字符串,保存到一个字符数组中。
然后从后面往前倒序输出这个字符串。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char str[100];
int i;
printf("请输入一个字符串:\n");
fflush(stdout);
gets(str);
printf("\n");
printf("倒序输出这个字符串为:\n");
for (i = strlen(str); i >= 0; i--) {
putchar(str[i]);
}
return EXIT_SUCCESS;
}
2.编写一个程序,首先要求用户输入姓,然后输入名,然后使用一个逗号和空格将姓和名组合在一起,并
存储和显示组合好的结果和结果的长度。下面是程序运行时的情形:
Enter your first name: Li
Enter your last name: Ming
The name is: Li, Ming
The length of name: 8
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char xing[10];
char ming[10];
int num1 = 0, num2 = 0;
memset(xing, 0, sizeof(xing));
memset(ming, 0, sizeof(ming));
puts("Enter your first name:\n");
fflush(stdout);
gets(xing);
puts("Enter your last name:\n");
fflush(stdout);
gets(ming);
num1 = strlen(xing);
num2 = strlen(ming);
printf("Enter your first name:%s\n", xing);
printf("Enter your last name:%s\n", ming);
printf("The name is:%s, %s\n", xing, ming);
printf("The length of name:%d\n", num1 + num2);
return EXIT_SUCCESS;
}
3.从键盘上接收一个字符串,并统计其中字符的个数。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char str[100];
int i,num=0;
printf("请输入一个字符串:\n");
fflush(stdout);
gets(str);
for(i=0;str[i]!='\0';i++)
{
num++;
}
printf("其中字符的个数为:\n %d",num);
return EXIT_SUCCESS;
}
4.按照下面要求完成程序:
定义一个char数组address,使用memset对它进行初始化。
从键盘上接收一个字符串,保存到address中。
再从键盘上接收一个字符保存到字符变量findChar中。
要求从address中查找是否有字符findChar,输出找到的次数。例如:字符串为“ABCDEDS”,如果要查找
字符‘D’,则应该输出2;如果要查找字符‘X’,则需要输出没有找到。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char address[100];
char findChar[10];
int i=0, num = 0;
memset(address, 0, sizeof(address));
printf("请输入一个字符串:\n");
fflush(stdout);
gets(address);
printf("请再输入一个字符:\n");
fflush(stdout);
scanf("%c", &findChar);
for (i = 0; i < strlen(address); i++) {
if(address[i]==findChar){
num++;
}
}
printf("字符在前面字符串中出现的次数为:\n %d", num);
return EXIT_SUCCESS;
}
5.定义一个包含有5个元素的int数组,并且初始化为0;
从键盘上接收5个整数,依次保存到int数组中。
要求你想办法,把数组的元素值倒序过来存储。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
int arr[5]={0,0,0,0,0};
int i;
printf("请输入五个整数:");
fflush(stdout);
for(i=0;i<5;i++){
scanf("%d",&arr[i]);
}
printf("五个整数逆序输出为:\n");
for(i=4;i>=0;i--){
printf("%d ",arr[i]);
}
return EXIT_SUCCESS;
}
6.从键盘输入一行字符串,再输入一个字符,判断后输入的字符在前面字符串中出现的次数,若没有则输
出此字符不存在。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
int num = 0, i;
char str[30];
char c;
printf("请输入一个字符串:\n");
fflush(stdout);
gets(str);
printf("请再输入一个字符:\n");
fflush(stdout);
scanf("%c", &c);
for (i = 0; i < strlen(str); i++){
if (c == str[i]){
num++;
}
}
printf("字符在前面字符串中出现的次数为:\n %d", num);
return EXIT_SUCCESS;
}
7.输入一行字符,统计其中单词的个数,输入的单词之间用空格隔开。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
int i, c, num = 0, word = 0;
char str[40];
printf("请输入一行字符:\n");
fflush(stdout);
gets(str);
for (i = 0; (c = str[i]) != '\0'; i++)
if (c == ' ') //c只能和字符比较,不能和字符串比较
word = 0;
else if (word == 0) {
word = 1;
num++;
}
printf("其中单词的个数为:%d\n", num);
return EXIT_SUCCESS;
}
8.编写一个程序,将字符数组上s2中的全部字符复制到字符数组s1中。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
//方法一:应用strcpy函数。
char s1[100];
char s2[100];
printf("请输入字符数组s2:\n");
fflush(stdout);
gets(s2);
printf("\n");
printf("s2中的全部字符复制到字符数组s1为:\n");
strcpy(s1, s2);
puts(s1);
//方法二:不应用strcpy函数。
/*char s1[100];
char s2[100];
int a,i;
printf("请输入字符数组s2:\n");
fflush(stdout);
gets(s2);
a=strlen(s2);
printf("\n");
printf("s2中的全部字符复制到字符数组s1为:\n");
for(i=0;i<a;i++){
s1[i]=s2[i];
printf("%c",s1[i]);
}*/
return EXIT_SUCCESS;
}
9.编写一程序,将两个字符串连接起来,s1接在s2的后面。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
//方法一:应用strcat函数。
/*char str1[100]="ghghgh";
char str2[10]="yuyuyu";
strcat(str1,str2);
printf("连接之后的结果是:\n%s",str1);*/
//方法二:不应用strcat函数。
char str1[100]="ghghgh";
char str2[10]="yuyuyu";
int i=0,j=0;
int num1=strlen(str1),num2=strlen(str2);
for(i=num1;i<num1+num2;i++){
str1[i]=str2[j++];
}
printf("连接之后的结果是:\n%s",str1);
return EXIT_SUCCESS;
}
10.应用二维数组数组输出棱形,(提示,*是字符)
*
***
*****
***
*
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
int i, j, k;
for (i = 1; i <= 9; i++) {
if (i <= 5) {
for (j = 1; j <= 6 - i; j++)
printf(" ");
for (k = 1; k <= 2 * i - 1; k++)
printf("*");
printf("\n");
} else {
for (j = 1; j <= i - 4; j++)
printf(" ");
for (k = 1; k <= 19 - 2 * i; k++)
printf("*");
printf("\n");
}
}
return EXIT_SUCCESS;
}