本文目錄一覽:
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
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/231489.html