本文目录一览:
C语言 输入一个字符串 利用指针 删除它的空格字符~
1、添加一个字符串函数,因为程序里面涉及到了输出和输入字符串以及字符。#include string.h。
2、其次就是要定义两个相同容量的字符串储存的变量 char a[100]; char b[100];。以及整数变量 int c; int i=0,j=0; 其中a[100]是存字符串的,b【100】是存你删除对应字符的字符串的,整数C是你想删除第几位。j ,i 是后面for循坏中要使用到的变量。
3、 printf("请输入你的字符串"); scanf("%s",a); printf("请输入你想要删除第几位字符"); scanf("%d",c)。
4、 for(i=0;istrlen(a);i++) { if(i+1!=c) { b[j]=a[i]; j++; } } printf(" %s",b); } 。
5、只要当i+1不等于c时把a【i】里面的字符赋给b【i】,那么这样当i+1=c时不把它赋给b【i】从而实现删除功能。
6、最后是完整的程序流程图。
C语言中去掉空格问题
/*去除字符串右边空格*/
void
vs_strrtrim(char
*pstr)
{
char
*ptmp
=
pstr+strlen(pstr)-1;
while
(*ptmp
==
'
')
{
*ptmp
=
'\0';
ptmp--;
}
}
/*去除字符串左边空格*/
void
vs_strltrim(char
*pstr)
{
char
*ptmp
=
pstr;
while
(*ptmp
==
'
')
{
ptmp++;
}
while(*ptmp
!=
'\0')
{
*pstr
=
*ptmp;
pstr++;
ptmp++;
}
*pstr
=
'\0';
}
c语言 字符串去掉空格
// 修改如下:
#include stdio.h
#include stdlib.h
#include string.h
void trimSpace(char *instr, char *outstr){
int i = 0;
int j = 0; // 因为去掉空格后的字符串的字符个数和去掉空格之前不一样,需要额外增加一个变量用来标记下标。
for (i = 0; i (int)strlen(instr); i++)
{
if ((int)(*(instr+i))==32)
{
continue;
}
else{
*(outstr + j) = *(instr + i);
j++;
}
printf("%c", *(outstr+i)); //这个位置可以打印出来去掉空格之后的字符串
}
*(outstr + j) = '\0';
printf("%s", *outstr); //这个位置再打印就是null了 求解为什么 感谢
}
void main(){
char *p1 = " abcdefgdddd ";
char p2[100] = {0};
trimSpace(p1,p2);
//printf("%s", p2);
getchar();
}
C语言 删除字符串的所有前导空格
假设字符串是这样的
(_
表示
空格
,为了能看清,在相邻两个字符间放空格
)
"_
_
a
b
c"
第一个循环
while(*s=='
')
s++;
使s指向第一个非空格的字符a
前面有
t=s;
所以第二个训话
while(*t++=*s++);
就是
用a覆盖第一个空格
b覆盖第二个空格c覆盖a
对于
*t++=*s++
即
*(t++)=*(s++);
虽然++
的优先级高于*
但是
++在后
所以先使用t
s
然后才++
即相当于
*t
=
*s;
t++;
s++;
另外
*t++=*s++
使做为while的
入口检测
表达式的
所以当s指向'\0'使
先*s了
所以会把
'\0'复制到*t