我的编程空间,编程开发者的网络收藏夹
学习永远不晚

AndroidNDK开发(C语言字符串)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

AndroidNDK开发(C语言字符串)

1.C语音的字符串有两种

1.1字符数组


数组可以修改其中某一个值,不可以整体赋值。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>

//使用字符数组存储字符串
void  main() {

    //三种写法
    //\0代表 结束符
    char str[] = { 'h','e','l','l','o','\0' };
    //char str[6]= { 'h','e','l','l','o' };
    //char str[10] = "hello";

    printf("%s\n", str);
    //地址
    printf("%#x\n", str);
    getchar();
}

结果输出:

hello
0xb3fb78

1.2字符指针

字符指针不可以修改其中某一个值,可以整体赋值。使用指针加法,结合结束符,可以进行截取。


void main() {
    char *str = "how are you?";
    printf("%s\n", str);
    //str[1] = "w" ; //字符指针不可以修改其中某一个值

    str = "hello world";
    printf("%s\n", str);
    printf("%#x\n", str);

    //使用指针加法,截取字符串
    str += 3; //指向第四个字符首地址
    while (*str) {
        printf("%c", *str);
        str++;

    }
    getchar();
}

结果输出:

how are you?
hello world
0x97b44
lo world

2.字符串常用的方法

相关的头文件:#include <string.h>

2.1strcpy字符串拼接

原型:extern char *strcpy(char *dest,char *class="lazy" data-src);

功能:class="lazy" data-src所指由NULL结束的字符串复制到dest所指的数组中。

说明:class="lazy" data-src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳class="lazy" data-src的字符串。
返回指向dest的指针。

举例:


void main(void){
    char dest[50];  
    char *a = "china";
    char *b = " is powerful!";
    strcpy(dest, a);
    strcat(dest, b);
    printf("%s\n", dest);

    system("pause");
}

结果输出:

china is powerful!

2.2strchr字符串中查找字符

原型:extern char *strchr(char *s,char c);

功能:查找字符串s中首次出现字符c的位置

说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。


void main(void){
    char *str = "I want go to USA!";
    printf("%#x\n", str);
    //U元素的指针
    //str+3
    char* p = strchr(str, 'w');
    if (p){
        printf("索引位置:%d\n", p - str);
    }
    else{
        printf("没有找到");
    }

    system("pause");
}

结果输出:

0x877b30
索引位置:2

2.3strchr字符串中查找字符

原型:extern char *strstr(char *haystack, char *needle);

功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。

说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。


//strstr 从字符串haystack中寻找needle第一次出现的位置

void main(void){
    char *haystack = "I want go to USA!";
    char *needle = "to";
    //U元素的指针

    char* p = strstr(haystack, needle);
    if (p){
        printf("索引位置:%d\n", p - haystack);
    }
    else{
        printf("没有找到");
    }

    system("pause");
}

结果输出:

索引位置:10

2.4更多用法...


//strset 把字符串s中的所有字符都设置成字符c
void main(void){
    char str[] = "internet change the world!";
    _strset(str,'w');
    printf("%s\n",str);
    system("pause");
}

//strrev 把字符串s的所有字符的顺序颠倒过来
void main(void){
    char str[] = "internet change the world!";
    _strrev(str);
    printf("%s\n", str);
    system("pause");
}

//atoi 字符串转为int类型
//atol():将字符串转换为长整型值
void main(void){
    char* str = "a78";
    //int r = atoi(str);    
    printf("%d\n", r);

    system("pause");
}

// 字符串转为double类型
void main(void){
    char* str = "77b8b";
    char** p = NULL;
    //char* p = str + 2;
    //参数说明:str为要转换的字符串,endstr 为第一个不能转换的字符的指针
    double r = strtod(str,p);
    printf("%lf\n", r);
    printf("%#x\n", p);

    system("pause");
}

//strupr转换为大写
void main(void){
    char str[] = "CHINA motherland!";
    _strupr(str);
    printf("%s\n",str);
    system("pause");
}

//转换为小写
void mystrlwr(char str[],int len){
    int i = 0;
    for (; i < len; i++){
        //A-Z 字母 a-Z
        if (str[i] >= 'A' && str[i] <= 'Z'){
            str[i] = str[i]-'A' + 'a';
        }
    }   

}


void main(void){
    char str[] = "CHINA motherland!";
    mystrlwr(str,strlen(str));
    printf("%s\n", str);
    system("pause");
}

//练习:删除字符串中指定的字符
void delchar(char *str, char del){
    char *p = str;
    while (*str != '\0') {
        if (*str != del) {
            *p++ = *str;
        }
        str++;
    }
    *p = '\0';
}


//删除最后一个字符
int main()
{
    char str[] = "vencent ppqq";

    delchar(str,'t');
    printf("%s\n", str);
    
    system("pause");
}

//Java String replaceAll 
//StringBuffer buff.deleteCharAt(buff.length()-1);
//删除最后一个字符
void main(void){
    char str[] = "internet,";
    str[strlen(str) - 1] = '\0';
    printf("%s\n", str);
        
    //作业:realloc实现StringBuffer的拼接,而不是一开始开辟一个很大的数组
    //结构体StringBuffer 

    system("pause");
}

//memcpy 由class="lazy" data-src所指内存区域复制count个字节到dest所指内存区域
void main(void){
    char class="lazy" data-src[] = "C,C++,Java";
    char dest[20] = {0};

    //字节
    memcpy(dest,class="lazy" data-src,5);
    
    printf("%s\n",dest);
    system("pause");
}

//memchr 从buf所指内存区域的前count个字节查找字符ch。
void main(void){
    char class="lazy" data-src[] = "C,C++,Java";
    char ch = 'C';

    //字节 (分段截取)
    char* p = memchr(class="lazy" data-src+3, ch, 5);
    if (p){
        printf("索引:%d\n", p - class="lazy" data-src);
    }
    else{
        printf("找不到\n");
    }

    
    system("pause");
}

//memmove 由class="lazy" data-src所指内存区域复制count个字节到dest所指内存区域。
void main(){
    char s[] = "Michael Jackson!";
    //截取的效果 
    memmove(s, s + 8, strlen(s) - 8 - 1);
    s[strlen(s) - 8] = 0;
    printf("%s\n", s);
    getchar();
}

//在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内
void main(){
    char *s1 = "Welcome To Beijing";
    char *s2 = "to"; 
    char *p;

    p = strpbrk(s1, s2);
    if (p)
        printf("%s\n", p);
    else
        printf("Not Found!\n");

    p = strpbrk(s1, "Da");
    if (p)
        printf("%s", p);
    else
        printf("Not Found!");

    getchar();
}

到此这篇关于Android NDK开发(C语言字符串)的文章就介绍到这了,更多相关Android NDK C语言字符串 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

AndroidNDK开发(C语言字符串)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C语言字符串替换:字符,字符串,字符数组详解

在C语言中,字符串是由字符数组表示的。一个字符串是一个以null字符('\0')结尾的字符数组。字符替换:要替换字符串中的某个字符,可以使用循环遍历字符串的每个字符,然后用新的字符替换需要替换的字符。例如,下面的代码将字符串str中的所有字
2023-08-15

C语言如何反转字符串

本文介绍了在C语言中反转字符串的三种方法:指针操作、数组遍历和递归。指针操作使用两个指针逐个交换字符,而数组遍历使用两个索引从两端交换字符。递归将字符串拆分成两部分,反转一部分后再交换并再次反转。指针操作最快,其次是数组遍历,递归最慢。选择最合适的方法取决于字符串长度和字符处理开销。
C语言如何反转字符串
2024-04-02

c语言怎么输入字符串

在C语言中,可以使用`scanf`函数来输入字符串。下面是一个例子:```c#include int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);printf("输入
2023-09-05

c语言字符串怎么定义

在C语言中,可以使用字符数组来定义字符串。例如:char str[20]; // 定义一个长度为20的字符数组,用于存储字符串还可以使用指针来定义字符串。例如:char *str = "Hello, world!"; // 定义一个指向
c语言字符串怎么定义
2024-02-29

c语言怎么对比字符串

c 语言中比较字符串的方法有:使用 strcmp() 函数比较两个字符串的全部内容。使用 strncmp() 函数比较两个字符串的前 n 个字符。使用循环和字符比较手工比较字符串。C 语言中比较字符串的方法在 C 语言中,字符串表示为字符
c语言怎么对比字符串
2024-05-21

C语言中字符串怎么用

小编给大家分享一下C语言中字符串怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!串的定义零个或多个字符组成的有限序列串的比较 串的比较实际上是在比较串中字符的
2023-06-26

c语言怎么读入字符串

c语言中读入字符串可以使用scanf或gets函数。1. scanf函数按字符串格式读取用户输入,直到遇到空格或换行符。2. gets函数读取用户输入的整个行,包括空格和换行符,但可能会导致数组溢出。C语言字符串读入问题:如何使用C语言读
c语言怎么读入字符串
2024-05-13

c语言字符串如何去除重复字符

可以使用两个指针来去除重复字符。首先,创建一个空的字符串,用于存储结果。然后,遍历原始字符串中的每一个字符。对于每个字符,检查它是否已经出现在结果字符串中。如果没有出现,则将该字符添加到结果字符串中。最后,返回结果字符串。下面是一个示例代码
2023-09-05

C语言字符串实例分析

本篇内容主要讲解“C语言字符串实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言字符串实例分析”吧!看下面这个我们熟知的也是最先学习的代码"Hello world!"这一堆的字母就是字
2023-06-29

C语言字符串怎么表示

这篇文章主要介绍了C语言字符串怎么表示的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言字符串怎么表示文章都会有所收获,下面我们一起来看看吧。字符串表示方式字符串常量用双引号括起来的内容称为字符串常量,例如:
2023-06-30

c语言怎么接收字符串

在 c 语言中接收字符串的方法有:使用 gets() 函数从标准输入中读取一行字符串。使用 scanf() 函数并指定 %s 格式化字符串来读取字符串。如何在 C 语言中接收字符串在 C 语言中接收字符串有多种不同的方法。最常见的方法是使
c语言怎么接收字符串
2024-05-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录