函数_指针
2015-12-03 20:20
369 查看
刚刚学习指针,忙活了一个下午,终于把这道题给写出来了
编写四个函数:strlen strtrim strltrim strrtrim。分别用于求出给定字符串长度(不包括末端字符),去除给定字符串两边的空格(中间不去除),去掉左边的空格和去掉右边的空格。代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Strlen(char *p);
void Strtrim(char *p,
char *p2, char *p4);
void Strltrim(char *p,
char *p1);
void Strrtrim(char *p,
char *p2);
int main(int argc,
const char * argv[]) {
char array[] =
" H e l l o W o r l d ! ";
char *array2 = (char *)
malloc(sizeof(char) *
50);
char *array3 = (char *)
malloc(sizeof(char) *
50);
char *array4 = (char *)
malloc(sizeof(char) *
50);
int len = Strlen(array);
printf("给定字符串长度是%d\n",len);
Strtrim(array, array3, array4);
Strltrim(array, array2);
Strrtrim(array,array3);
free(array2);
free(array3);
free(array4);
return 0;
}
int Strlen(char *p)
{
int len = 0;
int i = 0;
if (*(p+i) != '\0') {
while (*(p+i) != '\0') {
len++;
i++;
}
}
return len;
}
void Strtrim(char *p,
char *p2, char *p4)
{
int len = Strlen(p);
int i = len-1;
while ((*(p+i)) ==
' ') {
i--;
if ((*(p+i)) != ' ') {
for (int j =
0; j < len; j++) {
(*(p2+j)) = (*(p+i));
i--;
}
}
}
int count = Strlen(p2);
for (int i =
0; i < count / 2; i++) {
int tmp = p2[i];
p2[i] = p2[count-i-1];
p2[count-i-1] = tmp;
}
i =
0;
len =
Strlen(p2);
while ((*(p2+i)) ==
' ') {
i++;
if ((*(p2+i)) != ' ') {
for (int j =
0; j < len ; j++) {
(*(p4+j)) = (*(p2+i));
i++;
}
printf("去掉左右两边的空格后->%s<-\n",p4);
}
}
}
void Strltrim(char *p,
char *p1)
{
int i = 0;
int len = Strlen(p);
while ((*(p+i)) ==
' ') {
i++;
if ((*(p+i)) != ' ') {
for (int j =
0; j < len ; j++) {
(*(p1+j)) = (*(p+i));
i++;
}
printf("去掉左边的空格后->%s\n",p1);
}
}
}
void Strrtrim(char *p,
char *p2)
{
int len = Strlen(p);
int i = len-1;
while ((*(p+i)) ==
' ') {
i--;
if ((*(p+i)) != ' ') {
for (int j =
0; j < len; j++) {
(*(p2+j)) = (*(p+i));
i--;
}
//printf("去掉右边的空格后%s\n",p2);
}
}
int count = Strlen(p2);
for (int i =
0; i < count / 2; i++) {
int tmp = p2[i];
p2[i] = p2[count-i-1];
p2[count-i-1] = tmp;
}
printf("去掉右边的空格后%s<-\n",p2);
}
编写四个函数:strlen strtrim strltrim strrtrim。分别用于求出给定字符串长度(不包括末端字符),去除给定字符串两边的空格(中间不去除),去掉左边的空格和去掉右边的空格。代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Strlen(char *p);
void Strtrim(char *p,
char *p2, char *p4);
void Strltrim(char *p,
char *p1);
void Strrtrim(char *p,
char *p2);
int main(int argc,
const char * argv[]) {
char array[] =
" H e l l o W o r l d ! ";
char *array2 = (char *)
malloc(sizeof(char) *
50);
char *array3 = (char *)
malloc(sizeof(char) *
50);
char *array4 = (char *)
malloc(sizeof(char) *
50);
int len = Strlen(array);
printf("给定字符串长度是%d\n",len);
Strtrim(array, array3, array4);
Strltrim(array, array2);
Strrtrim(array,array3);
free(array2);
free(array3);
free(array4);
return 0;
}
int Strlen(char *p)
{
int len = 0;
int i = 0;
if (*(p+i) != '\0') {
while (*(p+i) != '\0') {
len++;
i++;
}
}
return len;
}
void Strtrim(char *p,
char *p2, char *p4)
{
int len = Strlen(p);
int i = len-1;
while ((*(p+i)) ==
' ') {
i--;
if ((*(p+i)) != ' ') {
for (int j =
0; j < len; j++) {
(*(p2+j)) = (*(p+i));
i--;
}
}
}
int count = Strlen(p2);
for (int i =
0; i < count / 2; i++) {
int tmp = p2[i];
p2[i] = p2[count-i-1];
p2[count-i-1] = tmp;
}
i =
0;
len =
Strlen(p2);
while ((*(p2+i)) ==
' ') {
i++;
if ((*(p2+i)) != ' ') {
for (int j =
0; j < len ; j++) {
(*(p4+j)) = (*(p2+i));
i++;
}
printf("去掉左右两边的空格后->%s<-\n",p4);
}
}
}
void Strltrim(char *p,
char *p1)
{
int i = 0;
int len = Strlen(p);
while ((*(p+i)) ==
' ') {
i++;
if ((*(p+i)) != ' ') {
for (int j =
0; j < len ; j++) {
(*(p1+j)) = (*(p+i));
i++;
}
printf("去掉左边的空格后->%s\n",p1);
}
}
}
void Strrtrim(char *p,
char *p2)
{
int len = Strlen(p);
int i = len-1;
while ((*(p+i)) ==
' ') {
i--;
if ((*(p+i)) != ' ') {
for (int j =
0; j < len; j++) {
(*(p2+j)) = (*(p+i));
i--;
}
//printf("去掉右边的空格后%s\n",p2);
}
}
int count = Strlen(p2);
for (int i =
0; i < count / 2; i++) {
int tmp = p2[i];
p2[i] = p2[count-i-1];
p2[count-i-1] = tmp;
}
printf("去掉右边的空格后%s<-\n",p2);
}
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua和C语言的交互详解
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数
- Lua中实现sleep函数功能的4种方法