Linux C 字符串操作

1、字符串输入

  1 #include <stdio.h>
  2 #include <stdlib.h>     //函数malloc()
  3 #include <string.h>
  4 
  5 int main()
  6 {
  7         int i = 0;
  8         char *tempString;
  9         char *stringArray[3];  //指针数组
 10         for(i = 0; i < 3; i++)
 11         {
 12                 printf("Enter: ");
 13                 scanf("%s", tempString);  //输入
 14                 //malloc() 在 堆中 申请内存空间
 15                 stringArray[i] = (char *)malloc(sizeof(char) * (strlen(tempString) + 1));
 16                 strcpy(stringArray[i], tempString);  //复制 字符串
 17         }
 18         printf("%s %s%s\n", stringArray[0], stringArray[1], stringArray[2]);
 19         for(i = 0; i < 3; i++)
 20         {
 21                 free(stringArray[i]);   //free() 释放
 22         }
 23         return 0;
 24 }
执行:


2、字符串长度

  1 #include<stdio.h>
  2 
  3 int main(int argc, char *argv[])
  4 {
  5         printf("string: %s\n", argv[1]);  //输入的第一个参数
  6         printf("length: %d\n", string_length(argv[1]));
  7 
  8         return 0;
  9 }
 10 
 11 int string_length(char *str)
 12 {
 13         int str_len = 0;
 14         char *temp = NULL;
 15         temp = str;
 16         while( *temp != '\0')
 17         {
 18                 str_len++;  //长度 自加
 19                 temp++;
 20         }
 21         return str_len;
 22 }
执行:



3、字符串连接

  1 #include <stdio.h>
  2 
  3 char *stringCatenate(char *dest_str, char *src_str);
  4 
  5 int main(int argc, char *argv[])
  6 {
  7         printf("%s\n", stringCatenate(argv[1], argv[2]));
  8 
  9         return 0;
 10 }
 11 
 12 char *stringCatenate(char *dest_str, char *src_str)
 13 {
 14         char *dtemp = NULL;
 15         char *stemp = NULL;
 16         dtemp = dest_str;
 17         stemp = src_str;
 18         while(*dtemp != '\0')
 19         {
 20                 dtemp++;
 21         }
 22         while(*stemp != '\0')
 23         {
 24                 *dtemp = *stemp;
 25                 dtemp++;
 26                 stemp++;
 27         }
 28         *dtemp = '\0';
 29         return dest_str;  //注意:此处不是返回 dtemp
 30 
 31 }
执行:



4、字符串复制

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 
  4 void stringCopy(char *dest_str, char *src_str);
  5 int stringLength(char *str);
  6 
  7 int main(int argc, char *argv[])
  8 {
  9         char *dest_str = NULL;
 10         printf("source string: %s\n", argv[1]);
 11         dest_str = (char *)malloc(sizeof(char) * (stringLength(argv[1]) + 1));
 12         stringCopy(dest_str, argv[1]);
 13         printf("back-up copy: %s\n", dest_str);
 14         return 0;
 15 }
 16 
 17 //___复制
 18 void stringCopy(char *dest_str, char *src_str)
 19 {
 20         char *dtemp = dest_str;
 21         char *stemp = src_str;
 22         while(*stemp != '\0')
 23         {
 24                 *dtemp = *stemp;
 25                 dtemp++;
 26                 stemp++;
 27         }
 28         *dtemp = '\0';
 29 }
 30 
 31 //___长度
 32 int stringLength(char *str)
 33 {
 34         char *temp = str;
 35         int len = 0;
 36         while(*temp != '\0')
 37         {
 38                 len++;
 39                 temp++;
 40         }
 41         return len;
 42 }
执行:




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值