C语言截取字符串的第一个字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言截取字符串的第一个字符相关的知识,希望对你有一定的参考价值。
参考技术A intmain(void)
char
*a="ab";
char
b[]="ab";
printf("%c
%c",a[0],b[0]);
getch();
return
0;
0号下标第一个字符 参考技术B 用数组存
然后用for循环输出
数组的第0个就是第一个字符
C语言中如何截取字符串的前几个字符?
#include<stdio.h>
#include<string.h>
void main()
char a[100],b[100];<br>scanf("%s",a);<br>printf("%s\n",a);<br>strncpy(b,a,6);<br>printf("%s\n",b);<br><p>结果变成了</p>
系统里的截取前n个字符是strncpy
#include <stdio.h>
#include <stdlib.h>
char *mystrncpy(const char *string,int n)//要求截取的字符串不可以改变,但指向字符串的指针可以改变
char *p=string;
if(p==NULL)//如果截取的字符串是空的直接返回
return NULL;
else
int i=0;
while(*p!='\0')//循环直到达n个字符串终止
if(i==n)
break;
i++;
p++;
*(p++)='\0';//赋值结束字符串
return string;
int main()
char str[50]="hello world";
printf("%s\n",mystrncpy(str,3));
printf("Hello world!\n");
return 0;
参考技术A 用指针加循环方式,如使指针指向字符串的首字符,读取一个,指针向后移动一位,循环次数由需要读取的字符数确定 参考技术B 你将字符串a,b都事先初始化一遍。
应为你直接strncpy的,所以不能保证拷贝的字符串里面的结束符'\0'也被正常拷贝。
所以目标字符串b里面不一定有结束符。输出"%s"的时候就会把从b[0]开始的全部字符,直到遇见'\0' 参考技术C 我是使用MFC写的, 希望对你有帮助
CString str = "cut out Cstring";
CString str1; //保存需要截取后的字符串变量
str1 = str.left(4); // 获得截取字符串str左边字符的长度
Messagebox(str1); //验证是否正确 参考技术D 方法没有错 问题在于 strncpy(b,a,6);
执行之后 没有在结尾处添加字符串结束标志
以上是关于C语言截取字符串的第一个字符的主要内容,如果未能解决你的问题,请参考以下文章
c++字符串截取 编写函数如substr(sting s ,int n) 要求取字符串S 的第N个字符 如 substr(k123,3) 结果为2