C语言数组

来源:互联网 发布:东软数据库安全审计 编辑:程序博客网 时间:2024/06/06 17:12

从键盘上接收一个字符串,保存到一个字符数组中。
然后从后面往前倒序输出这个字符串。例如:接收字符串为:“Jone”,则输出结果为“enoJ”。#include <stdio.h>
#include <stdlib.h>
int main(void){
 char arr[10];
 int n;
 printf("输入一个字符串:");
 fflush(stdout);
 gets(arr);
 n=strlen(arr);
 for(;n>=0;n--)
    printf("%c",arr[n]);
    return EXIT_SUCCESS;
}

(3) 分别使用char数组和string类对象实现下面任务:
(4) 编写一个程序,首先要求用户输入姓,然后输入名,然后使用一个逗号和空格将姓和名组合在一起,并存储和显示组合好的结果和结果的长度。下面是程序运行时的情形:
(5) Enter your first name: Li
(6) Enter your last name: Ming
(7) The name is: Li, Ming
(8) The length of name: 8
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void){
 char arr[10];
 char arr2[10];
 int age;
 printf("Enter your first name:\n");
 fflush(stdout);
 scanf("%s",arr);
 printf("Enter your last name:\n");
 fflush(stdout);
 scanf("%s",arr2);
 strcat(arr,", ");
 printf("The name is:%s\n",strcat(arr,arr2));


 printf("The length of name:%d",strlen(arr));

    return EXIT_SUCCESS;
}

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


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void){

 char arr[20];
  printf("请输入一个字符串:\n");
  fflush(stdout);
  gets(arr);
  printf("其中字符的个数:%d",strlen(arr));


    return EXIT_SUCCESS;
}

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

#include <stdio.h>
int main(void){

     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("没有找到!");

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


#include <stdio.h>
int main(void){
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;
}

输入一行字符,统计其中单词的个数,输入的单词之间用空格隔开。
#include <stdio.h>
#include<string.h>
#include <stdlib.h>
int main(void){
 char arr[100];
 int i,num=0,words=0;
 printf("请输入一行字符");
 fflush(stdout);
 gets(arr);
 for(i=0;i<strlen(arr);i++){
  if(arr[i]==' '){
   words=0;
  }else if(words==0){
   num++;
   words=1;
  }
 }
 printf("单词的个数是:%d\n",num);
 return EXIT_SUCCESS;
}
编写一个程序,将字符数组上s2中的全部字符复制到字符数组s1中。不应用strcpy函数。
#include <stdio.h>
#include <stdlib.h>
int main(void){
 char s1[80],s2[80];
 int i;
 printf("输出s2:");
 scanf("%s",s2);
 for(i=0;i<strlen(s2);i++)
  s1[i]=s2[i];
 printf("s1:%s\n",s1);

return EXIT_SUCCESS;
}
编写一程序,将两个字符串连接起来,s1接在s2的后面。
不应用strcat函数。
#include <stdio.h>
#include <stdlib.h>
int main(void){
 int i,j;
 char s1[100],s2[100],s3[100];
 gets(s1);
 gets(s2);
 for(i=0;s1[i]!='\0';i++)
  s3[i]=s1[i];
 for(j=0;s2[j]!='\0';j++)
  s3[j+i]=s2[j];

 printf("%s\n%s\n%s\n",s1,s2,s3);

return EXIT_SUCCESS;
}

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

#include <stdio.h>
void main()
{
   int i,j,k,l;
   for(i=4,l=1;i>0;i--,l++)
   {for(j=1;j<i;j++)
    printf("  ");
   for(k=1;k<=2*l-1;k++)
   printf(" *");
   printf("\n");
}
   for(i=1,l=3;i<4;i++,l--)
   {for(j=0;j<i;j++)
   printf("  ");
   for(k=1;k<=2*l-1;k++)
    printf(" *");
   printf("\n");
   }
}