C语言字符串数组的例题

1
(1)从键盘上接收一个字符串,保存到一个字符数组中。
(2)然后从后面往前倒序输出这个字符串。例如:接收字符串为:“Jone”,则输出结果为“enoJ”。




#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
char a[10];
int i;
int len = strlen(a);
memset(a, '\0', 10);
printf("输入的字符串为:\n");
//强制刷新
fflush(stdout);
//从键盘上接收一个字符串
gets(a);


for (i = len-1; i >= 0; i--) {
printf("%c",a[i]);
}


return EXIT_SUCCESS;
}



2
分别使用char数组和string类对象实现下面任务:
编写一个程序,首先要求用户输入姓,然后输入名,然后使用一个逗号和空格将姓和名组合在一起,并存储和显示组合好的结果和结果的长度。下面是程序运行时的情形:
Enter your first name: Li
Enter your last name: Ming
The name is: Li, Ming
The length of name: 8




#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
//定义数组
char first[10];
char last[10];
//提前输出提示
printf("Enter your first name:");
//强制刷新
fflush(stdout);
gets(first);
printf("\n");
printf("Enter your last name:");
//强制刷新
fflush(stdout);
gets(last);
printf("\n");
//连接逗号
strcat(first, ", ");
printf("The name is :%s\n", strcat(first, last));
printf("The length of name :%d\n", strlen(first));     //求长度


return EXIT_SUCCESS;
}

3
从键盘上接收一个字符串,并统计其中字符的个数。




#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
char arr[20];
printf("请输入一个字符串:\n");
//强制刷新
fflush(stdout);
//从键盘上接收字符串
gets(arr);
printf("其中字符的个数:%d",strlen(arr));
return EXIT_SUCCESS;
}


4
按照下面要求完成程序:
(1)定义一个char数组address,使用memset对它进行初始化。
(2)从键盘上接收一个字符串,保存到address中。
(3)再从键盘上接收一个字符保存到字符变量findChar中。
(4)要求从address中查找是否有字符findChar,输出找到的次数。例如:字符串为“ABCDEDS”,如果要查找字符‘D’,则应该输出2;如果要查找字符‘X’,则需要输出没有找到。






#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
//定义变量
int i,sum=0;
char address[20];//定义字符串
memset(address, '\0', 20);
printf("请输入一个字符串:\n");
//强制刷新
fflush(stdout);
//从键盘上接收字符串
gets(address);
//定义字符
char findChar;
printf("请再输入一个字符:\n");
//强制刷新
fflush(stdout);
scanf("%c", &findChar);
for (i = 0; i < strlen(address); i++) {
if (address[i] == findChar) {
sum++;
}
}
if (sum!= 0) {
printf("查找到了:%d", sum);
} else {
printf("没有找到!");
}


return EXIT_SUCCESS;
}


5
(1)定义一个包含有5个元素的int数组,并且初始化为0;
(2)从键盘上接收5个整数,依次保存到int数组中。
(3)要求你想办法,把数组的元素值倒序过来存储。例如:从键盘上接收数据后,数组元素存储的顺序依次为:
10 20 30 22 35
  则在做完操作后使数组元素存储的顺序应该为:
35 22 30 20 10
(4)完成倒序存储操作后,输出数组所有元素的值。




#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
int arr[5] = { 0 };
int i;
printf("请输入5个整数:\n");
//强制刷新
fflush(stdout);
for (i = 0; i < 5; i++) {
scanf("%d", &arr[i]);
printf("%d,", arr[i]);
}
printf("\n");
for (i = 4; i >= 0; i--) {
printf("%d,", arr[i]);
}


return EXIT_SUCCESS;
}


6
从键盘输入一行字符串,再输入一个字符,判断后输入的字符在前面字符串中出现的次数,若没有则输出此字符不存在。




#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {


int i,sum=0;
char arr[10];
//把字符串清0
memset(arr, '\0', 10);
printf("请输入一个字符串:\n");
//强制刷新
fflush(stdout);
//从键盘上接收字符串
gets(arr);
char ch;
printf("请再输入一个字符:\n");
//强制刷新
fflush(stdout);
scanf("%c", &ch);
for (i = 0; i < strlen(arr); i++) {
if (address[i] == ch) {
sum++;
}
}
if (sum!= 0) {
printf("查找到了:%d", sum);
} else {
printf("没有找到!");
}
return EXIT_SUCCESS;
}


7
输入一行字符,统计其中单词的个数,输入的单词之间用空格隔开。


#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
//定义字符
char arr[40];
int i=0, number=0,temp=0;
printf("请输入一行字符:\n");
fflush(stdout);
gets(arr);
for (i = 0;i < strlen(arr);i++) {
if (arr[i] == ' ') {
temp = 0;
} else if(temp == 0) {
number++;
temp = 1;
}
}
printf("单词的个数是:%d\n", number);


return EXIT_SUCCESS;
}


8
编写一个程序,将字符数组上s2中的全部字符复制到字符数组s1中。
(1) 方法一:应用strcpy函数。


#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
char s1[10]={"Liu"};
char s2[10]={"guijun"};
printf("%s",strcpy(s1,s2));


return EXIT_SUCCESS;
}


(2) 方法二:不应用strcpy函数。


#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
char s1[10];
int i;
memset(s1, '\0', 10);
char s2[10] = { "guijun" };
for (i = 0; i < strlen(s2); i++) {
s1[i] = s2[i];
}
puts(s1);
return EXIT_SUCCESS;
}



9
编写一程序,将两个字符串连接起来,s1接在s2的后面。 
(1) 方法一:应用strcat函数。


#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
char s1[10]={"Liu"};
char s2[10]={"guijun"};
printf("%s",strcat(s1,s2));


return EXIT_SUCCESS;
}


(2) 方法二:不应用strcat函数。




#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
char s1[10] = { "Liu" };
char s2[10] = { "guijun" };
printf("%s%s",s1,s2);


return EXIT_SUCCESS;
}



10
应用二维数组数组输出棱形,(提示,*是字符)
       *
     *** 
   *****
     ***
       *




#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main() {
char arr[5][5] = { { ' ', ' ', '*', ' ', ' ' }, { ' ', '*', '*', '*', ' ' },
{ '*', '*', '*', '*', '*' }, { ' ', '*', '*', '*', ' ' }, { ' ',
' ', '*', ' ', ' ' } };
int i, j;


for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
putchar(arr[i][j]);
}
printf("\n");
}




return EXIT_SUCCESS;
}



  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值