去除句子中第一个单词前的空格(运用数组)

上机内容:运用数组

上机目的:掌握数组值的改变方法

/*   
* Copyright (c) 2012, 烟台大学计算机学院                       
* All rights reserved.                       
* 文件名称:test.cpp                       
* 作者:黄兆宽  
* 完成日期:2012 年 12 月 22 日                       
* 版本号:v1.0                     
*                       
* 输入描述:无                       
* 问题描述:去除句子中第一个单词前的空格                    
* 程序输出:  
* 问题分析:                      
* 算法设计:略                       
*/  

//5.    
#include <iostream>     
using namespace std;  
//void atrim(char str[]);    
void ptrim(char *str);  
int main(void)  
{  
    char s[81]="     Some spaces before the first word.    ";  
    cout<<"请输入一个句子:";  
    cout<<"原句子:\""<<s<<"\""<<endl;  
    ptrim(s);  
    cout<<"去除前导空格后为:\"";  
    cout<<s<<"\""<<endl;  
    return 0;  
}  

void ptrim(char a[])  
{  
    int i,j=0;
	char b[81];
    for(i=0;a[i]==' ';i++);  
    while(a[i]!='\0')  
        b[j++]=a[i++];  
        b[j]='\0';
	for(i=0;a[i]!='\0';i++)
		a[i]=b[i];
} 


运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 C 语言提取一个句子第一个单词可以使用以下步骤: 1. 定义一个字符数组来存储输入的句子,并使用 scanf 函数读入句子。 2. 使用一个循环来遍历字符数组。 3. 在循环,使用一个判断语句来检查当字符是否为空格或标点符号。如果是,则跳过本次循环。 4. 如果当字符不是空格或标点符号,则将其加入到一个新的字符串,并继续遍历下一个字符。 5. 当遇到第一个空格或标点符号时,停止遍历,并输出新字符串。 示例代码如下: ``` #include <stdio.h> #include <string.h> int main(void) { char sentence[100]; // 定义字符数组来存储句子 printf("输入句子:"); scanf("%[^\n]", sentence); // 使用 scanf 函数读入句子 int i; // 定义循环变量 char word[20]; // 定义字符数组来存储单词 int j = 0; // 定义变量 j 来指示单词的长度 for (i = 0; i < strlen(sentence); i++) { // 遍历字符数组 if (sentence[i] == ' ' || sentence[i] == '.' || sentence[i] == ',') { // 如果遇到空格或标点符号 break; // 停止遍历 } word[j] = sentence[i]; // 将字符加入到 ### 回答2: 在C语言,可以使用字符数组和字符串处理函数来提取一个句子第一个单词。具体步骤如下: 1. 声明一个字符数组,存储句子。 ```c char sentence[100]; ``` 2. 通过标准输入函数获取用户输入的句子。 ```c scanf("%[^\n]", sentence); ``` 3. 声明一个字符指针,用于指向第一个单词的起始位置。 ```c char *firstWord; ``` 4. 使用字符串处理函数`strtok`将句子按照空格分割成多个单词,并将指针指向第一个单词的起始位置。 ```c firstWord = strtok(sentence, " "); ``` 5. 输出第一个单词。 ```c printf("第一个单词是:%s\n", firstWord); ``` 完整的代码如下所示: ```c #include <stdio.h> #include <string.h> int main() { char sentence[100]; char *firstWord; printf("请输入一个句子:"); scanf("%[^\n]", sentence); firstWord = strtok(sentence, " "); printf("第一个单词是:%s\n", firstWord); return 0; } ``` 运行程序后,在输入句子后,程序会输出提取到的第一个单词。注意,以上代码仅提取句子第一个空格单词,如果句子含有标点符号或其他特殊字符,提取的结果会受影响。如需更完善的单词提取方法,可以使用正则表达式或自定义函数进行处理。 ### 回答3: 在C语言提取一个句子第一个单词,可以通过以下步骤实现: 1. 定义一个字符数组来存储句子,例如char sentence[100]。 2. 使用scanf函数从用户输入读取句子,如scanf("%[^\n]s", sentence)。 3. 声明一个字符指针变量,如char *firstWord。 4. 使用strtok函数将句子分割为单词,如firstWord = strtok(sentence, " ")。 5. 判断firstWord是否为空指针,若为空则表示句子没有单词,程序结束;否则,表示成功提取到第一个单词。 6. 可以使用printf函数打印提取到的第一个单词,如printf("第一个单词是:%s\n", firstWord)。 注意:以上步骤使用了字符串处理函数strtok来进行分割,需要包含头文件string.h。同时,由于C语言没有动态内存分配,如果句子长度超过了定义的数组大小,可能会导致问题,请确保定义的数组足够大以容纳句子
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值