用C语言编写一个程序:输入任意大小的字符串,输出输入的字符串
时间: 2023-12-14 14:39:11 浏览: 119
以下是用C语言编写的程序,可以输入任意大小的字符串并输出它:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char *str;
int size = 0;
printf("请输入字符串:\n");
// 动态分配内存来存储字符串
str = (char*) malloc(size + 1);
// 逐个读入字符直到遇到换行符或EOF
while (1) {
char c = getchar();
// 如果遇到换行符或EOF,则终止输入
if (c == '\n' || c == EOF) {
break;
}
// 将字符加入字符串
str[size] = c;
size++;
// 重新分配内存以容纳更多字符
str = (char*) realloc(str, size + 1);
}
// 在字符串末尾添加空字符
str[size] = '\0';
printf("输入的字符串是:%s\n", str);
// 释放分配的内存
free(str);
return 0;
}
```
注意:由于动态分配了内存来存储字符串,因此必须在程序结束时释放内存,否则可能会导致内存泄漏。
相关问题
编写c语言程序,实现如下功能:输入任意一个字符串,内有若干个字符,再输入一个字符,要求程序将字符串中该字符删去
您好,我是ChitGPT,一个类ChatGPT的AI,很高兴为您解答问题。
关于您的问题:编写c语言程序,实现如下功能:输入任意一个字符串,内有若干个字符,再输入一个字符,要求程序将字符串中该字符删去。
您可以参考以下C语言代码实现:
```
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
void delete_char(char string[], char c){
int i, j;
for(i = j = 0; i < strlen(string); i++){
if(string[i] != c){
string[j++] = string[i];
}
}
string[j] = '\0';
}
int main(){
char string[MAX_LENGTH], c;
printf("请输入一个字符串:");
scanf("%s", string);
printf("请输入一个要删除的字符:");
scanf(" %c", &c);
delete_char(string, c);
printf("删除后的字符串为:%s", string);
return 0;
}
```
以上代码中,我们定义了一个`delete_char`函数,该函数用于删除字符串`string`中的字符`c`。具体实现是利用两个指针`i`和`j`,当字符不等于`c`时,将字符放入新的字符串中,并且`j`向后移动,最终将新的字符串的末尾设置为`\0`。
在`main`函数中,我们首先从用户输入获取要操作的字符串和要删除的字符,然后调用`delete_char`函数进行操作并打印结果。
希望这个代码对您有帮助,感谢您的提问!
C语言编写程序,输入任意一个字符串,逆序输出。例如:输入:YOU ARE GOOD!输出:!DOOG ERA UOY
好的,以下是代码实现:
```c++
#include <stdio.h>
#include <string.h>
int main(){
char str[100];
printf("请输入一个字符串:");
scanf("%[^\n]", str); //读取一行字符串,遇到换行符停止
int len = strlen(str); //获取字符串长度
printf("逆序输出为:");
for(int i=len-1; i>=0; i--){ //倒序输出
printf("%c", str[i]);
}
printf("\n");
return 0;
}
```
运行结果如下:
```
请输入一个字符串:YOU ARE GOOD!
逆序输出为:!DOOG ERA UOY
```
阅读全文